Fer*_*eak 2 c++ destructor this
今天的问题是:我可以this在析构函数中使用,如果是,我必须遵守的限制是什么......例如,我知道我不应该对基类做任何事情,因为它们已经消失了.但是还有其他限制吗?我可以安全地假设this(作为指针...即内存地址......一个数字)与构造函数中的相同吗?
我可以
this在析构函数中使用吗?
是.
例如,我知道我不应该对基类做任何事情,因为它们已经消失了.
不,此时基类仍然完好无损.派生类的成员(可能还有其他基类)已经被销毁,但是这个类的成员和基类一直存在,直到析构函数完成之后.
但是还有其他限制吗?
根据当前被销毁的类调度虚函数,而不是前一个派生类.所以要小心调用它们,特别是不要在这个类中调用任何纯虚函数.
不要强制this转换为派生类型,因为它不再是该类型的有效对象.
delete this出于显而易见的原因,你无法从析构函数中获取.
我可以安全地假设这个(作为指针...即内存地址......一个数字)与构造函数中的相同吗?
是的,对象的地址在其构造函数运行之前保持不变,直到其析构函数运行之后.
| 归档时间: |
|
| 查看次数: |
181 次 |
| 最近记录: |