替换对象时调用析构函数

时间:2019-03-29 17:13:50

标签: c++

我有一个保存对象的变量。现在,我为该变量分配一个不同的对象。原始物体会在何时被破坏? 函数示例:

{
    myclass a();
    myclass b(); //create 2 objects
    a = b; //copy b
} //leave scope, both copies of b will be destructed

2 个答案:

答案 0 :(得分:2)

  

会破坏原始物体

是的。所有自动变量都会自动销毁。

  

什么时候?

自动变量在作用域末尾被破坏。

  

替换对象时

工作分配不会“替换”已分配的对象。分配设置对象的值。


P.S。在示例代码中,您没有对象。您已经声明了两个函数,并尝试分配其中一个(分配函数格式不正确)。

答案 1 :(得分:-1)

您的对象将在范围的末尾销毁。当将b分配给a时(假设对象已正确声明,则我的意思是仅使用myclass a;不使用大括号),a将不会被销毁,只是其值将被更改。另外,您需要重载赋值运算符。