动态派生类的内存分配?

时间:2019-05-16 17:31:05

标签: c++ polymorphism

任何人都可以看下面的代码吗?我试图为从A派生的类B分配一些内存,但是我不能调用它的成员函数(违反内存访问)。

但是,如果我使用B * b = new B(),一切都会好起来的。这里有什么问题?

class A
{
public:
    virtual void print() const = 0;
};

class B : public A
{
public:
    void print() const
    {
        printf("print from B\n");
    }
};

void main()
{
    B* b = (B*)malloc(sizeof(B));
    //B* b = new B();
    b->print();
    A* a = b;
    a->print();
    free(b);
}

0 个答案:

没有答案