替换对象时调用析构函数
Calling destructor when replacing object
我有一个保存对象的变量。现在我为这个变量分配了一个不同的对象。原始对象是否会被销毁,何时销毁?示例函数:
{
myclass a();
myclass b(); //create 2 objects
a = b; //copy b
} //leave scope, both copies of b will be destructed
原始对象是否会被破坏
是的。所有自动变量都会自动销毁。
什么时候?
自动变量在作用域结束时销毁。
替换对象时
赋值不会"替换"分配的对象。赋值设置对象的值。
附言在示例代码中,您没有对象。您已经声明了两个函数并尝试分配其中一个函数(分配函数格式不正确(。
您的对象将在作用域结束时销毁。当你将b赋值给a时(假设对象被正确声明,我的意思是只使用myclass a;不带大括号(,a不会被破坏,只是它的值会被改变。此外,还需要重载赋值运算符。
相关文章:
- 析构函数调用
- 在具有向量的类构造函数中进行析构函数调用
- 从 c++ 中派生类的析构函数调用虚函数
- C++析构函数调用两次,堆栈分配的复合对象
- C++ 在析构函数调用之前删除的动态成员数组
- 析构函数调用c++中的一个向量
- Singleton模式中的手动析构函数调用:调用多次
- 从内部类的析构函数调用虚拟函数
- 与 boost odeint 集成期间的析构函数调用
- 堆栈展开如何与析构函数调用有关?
- C++:优化析构函数调用
- 以逗号分隔的表达式中的析构函数调用
- GCC 9.1 返回 void& 作为显式析构函数调用的结果类型。这是一个错误吗?
- 从C++中的虚拟析构函数调用虚拟方法
- 从指针返回对象时出现意外的析构函数调用
- 使用 decltype 显式析构函数调用
- C++析构函数调用了错误的对象
- 了解虚拟函数和析构函数调用
- 多重继承析构函数调用他自己和父析构函数?c++
- 析构函数调用表单不适当的库