【发布时间】:2014-10-03 11:29:36
【问题描述】:
当我在 XCode 版本 5.1.1 中运行以下程序时,
#include <iostream>
class MyClass
{
public:
MyClass() { std::cout << "MyClass Cons " << this << std::endl;}
~MyClass() { std::cout << "MyClass Dest " << this << std::endl;}
};
void Func(MyClass myClass)
{
}
int main(int argc, const char * argv[])
{
MyClass myClass1;
Func(myClass1);
return 0;
}
我得到的输出是
MyClass Cons 0x7fff5fbff918
MyClass Dest 0x7fff5fbff910
MyClass Dest 0x7fff5fbff918
为什么析构函数触发两次而构造函数只触发一次?
【问题讨论】:
-
您正在制作副本。您还需要提供一个详细的复制构造函数。
-
感谢您的快速回复
标签: c++ constructor destructor