construtores gerados pelo compilador [duplicado]
Esta pergunta já tem uma resposta aqui:
Condições para geração automática de operador padrão / copiar / mover e copiar / mover atribuição? 3 respostasEsta é apenas uma pergunta rápida para entender corretamente o que acontece quando você cria uma classe com um construtor como este:
class A
{
public:
A() {}
};
Eu sei que nenhum construtor padrão é gerado, uma vez que já está definido, mas são construtores de cópia e atribuição gerados pelo compilador ou, em outras palavras, preciso declarar um construtor de cópia privada e um operador de atribuição privada para impedir que isso aconteça?
class A
{
private:
// needed to prevent automatic generation?
A( const A& );
A& operator=( const A& );
public:
A() {}
};