C++对象的创建及析构问题
为什么会有四次呢?我认为应该会调用3次析构函数,一次临时无名对象,两次实例化对象的析构,另一个调用的是哪里的呢。
请大家不吝赐教,尽量详细些。 析构函数
[解决办法]
楼主定义的+法,Complex operator+(Complex c2),这样在传递参数的时候,也会构造一个临时的匿名对象,这个对象是通过拷贝构造函数调用的,也是调用同样的析构函数来析构
如果改为:const Complex& c2作为参数,则只有三次
[解决办法]
对于自定义的用户类型,如果拷贝构造函数的成本比较高的话,最好用引用传递参数,这样能免去一个对象的构造,节省成本。