在派生类的构造函数的初始化列表中堆积分配和初始化基类

时间:2018-02-26 01:43:53

标签: c++ heap-memory delete-operator derived-class

class Base
{
int n;
public:
    Base(int n)
        : n(n)
    {}
       ...
}

class Derived : Base
{
public:
    Derived(int n)
        : Base(n)
    {}
}

void function()
{
    Derived* obj  = new Derived(10);

       ...

    delete obj;
}

我遇到与上述代码类似的情况,其中派生只是 Base 的包装。要在功能中访问该对象,我会故意使用派生指针。我的理解是它在堆上分配的整个对象,包括 Base 部分,并且删除回收所有内存,即使我使用 Derived 指针和基础不是多态的。这是正确的还是还有更多的东西?

由于

0 个答案:

没有答案