using namespace std;
Object returnObject(){
Object o;
return o; //place A
}
int main() {
Object CopiedO=returnObject();
return 0; //Place B
}
Run Code Online (Sandbox Code Playgroud)
对象定义是:
Object::Object() {
cout<<"Object::Object"<<endl;
}
Object::~Object() {
cout<<"Object::~Object"<<endl;
}
Object::Object(const Object& object) {
cout<<"Object::CopyObject"<<endl;
}
Run Code Online (Sandbox Code Playgroud)
结果是:
/*Object::Object
Object::~Object*/
Run Code Online (Sandbox Code Playgroud)
据我所知,o和CopiedO都将被解构,但为什么只有一次打印Object ::〜Object?
我认为没有内联,复制的o是o的副本.但是它不能打印Object :: CopyObject