Это просто быстрый вопрос правильно понять, что происходит, когда вы создаете класс с конструктором, как это:компилятором Конструкторы
class A
{
public:
A() {}
};
Я знаю, что конструктор по умолчанию не создается, поскольку она уже определена, но являются копировать и присваивать конструкторы, сгенерированные компилятором, или, другими словами, мне нужно, чтобы объявить частный конструктор копирования и частный оператор назначения, чтобы предотвратить это?
class A
{
private:
// needed to prevent automatic generation?
A(const A&);
A& operator=(const A&);
public:
A() {}
};
Действительно, хотя, если вы используете это, чтобы предотвратить копирование/назначение, проверить [повышение :: noncopyable] (HTTP: // WWW .boost.org/DOC/LIBS/1_55_0/LIBS/утилиты/utility.htm # Class_noncopyable). (Вы можете вырвать этот простой класс или написать свое собственное и использовать его везде, где хотите.) – TypeIA