Можно создать дубликат:
Copy Constructor is not invokedконструктор копирования не вызывается
# include <iostream>
using namespace std;
class Abc
{
public:
int a;
Abc()
{
cout<<"def cstr\n";
a=10;
}
Abc(const Abc &source)
{
a=source.a;
cout<<"copy constructor is called"<<endl;
}
};
int main()
{
Abc kk = Abc();
cout<<kk.a<<endl;
return 0;
}
В приведенной выше программе мой вывод:
Защиту ПРМ
Здесь я ожидал, что конструктор копирования будет вызван после конструктора по умолчанию, которого не происходит.
Пожалуйста, расскажите мне, что происходит здесь. Это потому, что Abc() создает временный объект?
Пожалуйста, исправьте меня, если я ошибаюсь.
спасибо !!!