Junior — Middle
Em que casos a chamada ao construtor de cópia é feita automaticamente em C++?
sobes.tech IA
Resposta da IA
A chamada automática do construtor de cópia em C++ ocorre nos seguintes casos:
-
Ao inicializar um objeto com outro objeto do mesmo tipo, por exemplo:
MyClass a; MyClass b = a; // chamada ao construtor de cópia -
Ao passar um objeto por valor para uma função:
void func(MyClass obj); // ao chamar func(a), será chamado o construtor de cópia -
Ao retornar um objeto por valor de uma função (antes de otimizações do compilador):
MyClass func() { MyClass a; return a; // pode chamar o construtor de cópia } -
Ao inicializar um objeto na lista de inicialização de outro objeto.
Se o construtor de cópia não estiver explicitamente definido, o compilador irá gerá-lo automaticamente, se possível.