#include <iostream>
using namespace std;
class Test
{
public:
Test()
{
printf("construct ..\n");
}
~Test()
{
printf("destruct...\n");
}
};
Test Get()
{
Test t = Test();
return t;
}
int main(int argc, char *argv[])
{
Test t = Get();
return 0;
}
कंसोल आउटपुट है:क्यों नाशक केवल एक बार बुलाया गया है?
$ g++ -g -Wall -O0 testdestructor.cc
$ ./a.out
निर्माण ..
विनाश ...
संभावित डुप्लिकेट [कॉपी एलिशन और रिटर्न वैल्यू ऑप्टिमाइज़ेशन क्या हैं?] (Http://stackoverflow.com/questions/12953127/what-are-copy-elision-and-return-value-optimization) –