#include <iostream>
using namespace std;
class ClassA {
int k;
public:
ClassA(int i) : k(i)
{
}
~ClassA()
{
cout << "A destroyed" << " k=" << k << endl;
}
ClassA copyAndModify()
{
ClassA a(k*2);
return a;
}
void taunt()
{
cout << k << endl;
}
};
int main (int argc, char * const argv[]) {
ClassA original(1)
ClassA modified = original.copyAndModify();
modified.taunt();
return 0;
}
我认为当方法返回时对象'a'(内部方法copyAndModify)被解构,但事实并非如此。这是否意味着在方法中创建的所有正在返回的对象都不会被解构?这对所有编译器都是如此吗?