[英]Confusion in C++ constructor
#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個創建obj和1個被破壞的obj。 救命。
因為復制Elision。 在這里閱讀更多相關信息。 您的編譯器理解,它可以避免復制對象,只創建一個對象。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.