Ceci est juste une question rapide à comprendre correctement ce qui se passe lorsque vous créez une classe avec un constructeur comme celui-ci:compilateur généré constructeurs
class A
{
public:
A() {}
};
Je sais qu'aucun constructeur par défaut est généré car il est déjà défini, mais sont constructeurs de copie et d'affectation générés par le compilateur ou en d'autres termes dois-je déclarer un constructeur de copie privée et un opérateur d'assignation privée afin d'éviter que cela se produise?
class A
{
private:
// needed to prevent automatic generation?
A(const A&);
A& operator=(const A&);
public:
A() {}
};
En effet, bien que si vous utilisez cette fonction pour empêcher la copie/cession, consultez [boost :: noncopyable] (http: // www .boost.org/doc/libs/1_55_0/libs/utilitaire/utilitaire.htm # Class_noncopyable). (Vous pouvez déchirer cette classe simple ou écrire la vôtre et la réutiliser où vous voulez.) – TypeIA