Есть ли способ отключить не динамический конструктор класса? [Дубликат]

    

На этот вопрос уже есть ответ здесь:

    

Представьте себе класс, который может быть создан только с помощью оператора new. Возможно ли достичь этого в стандарте c ++ 17, не удаляя его деструктор?

class Foo
{
    Foo(){}
    ~Foo(){}
    // delete non-dynamic constructor...?
}

// ...
Foo A; // compiling error
Foo* B = new Foo(); // ok
4 голоса | спросил user3366592 22 Mayam18 2018, 10:33:33

1 ответ


0
Вы можете легко сделать это, оставив все конструкторы закрытыми и обернув обязательный вызов ---- +: = 0 =: + ---- в фабричной функции.Вы также должны отключить копирование класса.
ответил Angew 22 Mayam18 2018, 10:37:52

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132