阅读背景:

如果调用析构函数并再次为其他对象使用分配的内存,会发生什么?

来源:互联网 
class base
{
    virtual ~base();
};

class der1 :public base
{
    int i;
}

class der2 :public base //I used double that der2 is bigger than der1
{
    double d;
}

int main()
{
   base* ptr = new der2;
   ptr->~base(); //Destructor call just for the
                 //case that the der2 had a pointer member

   der1* ptr2 = static_cast<der1*>(ptr);
   *ptr2 = der1();

   delete ptr;

   return 0;
}
class base
{
    virtual ~base();
};

class der



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: