从抽象类派生的类的对象应该在免费存储中吗?

时间:2014-02-06 18:20:25

标签: c++ abstract-class

我正试图围绕TC ++ PL中对我来说似乎很奇怪的事情。它是关于从抽象类派生的类的分配。

  

由于我们对抽象类型的表示一无所知,我们必须在免费商店上分配对象,并通过引用和指针访问它们。

为什么免费存储?如您所知,从抽象类派生的类可以像任何其他局部变量一样进行分配。我不知道TC ++ PL究竟在这句话中试图传达什么。

2 个答案:

答案 0 :(得分:2)

在我看来,这是一个不正确的陈述。例如,如果您有一个抽象基类B和派生(非抽象)类D,那么您可以编写

D d;
B &b = d;

是D类型的对象是在堆栈中创建的,前提是此代码在某个函数中。

答案 1 :(得分:0)

它们意味着如果你想在不知道具体类型的情况下使用某个抽象类,你必须使用它的动态分配,即你不能写abstract_class A = concrete_class B;