#include <iostream>
using namespace std;
class Obj {
public:
Obj(){cout <<"create obj" << endl;}
Obj(const Obj& other){cout<<"copy create obj"<<endl;}
~Obj(){cout<<"destructed obj"<<endl;}
};
int main() {
Obj(Obj((Obj())));
cout<<"---- exit main ----"<<endl;
}
我不知道为什么这个程序只打印出 1 create obj 和 1 destructed obj。帮助。
最佳答案
因为复制省略。了解更多信息 here .您的编译器明白,它可以避免复制对象,而只创建一个对象。
关于c++ - C++ 构造函数中的混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46843171/