【发布时间】:2015-07-23 07:02:33
【问题描述】:
据我了解,如果使用指向动态分配的对象的指针调用成员函数,则该对象将被删除。但是如果成员函数已经被静态分配的对象调用了,那会发生什么呢?
class sample
{
int i;
public:
void func()
{
delete this;
}
};
void main()
{
sample *s = new sample;
s->fun();
sample s1;
s1.fun();
}
【问题讨论】:
-
提供一个可能的例子?
-
应该依赖于堆管理,你肯定会在尝试释放无效块时遇到错误。
-
你尝试的结果如何?
-
好奇为什么要让成员函数删除对象。
标签: c++ dynamic-allocation static-allocation