【问题标题】:what is the size of an abstract class and why can't we create objects of an abstract class? [closed]抽象类的大小是多少,为什么我们不能创建抽象类的对象? [关闭]
【发布时间】:2010-10-03 18:33:19
【问题描述】:

抽象类的大小是多少?为什么我们不能创建抽象类的对象?

【问题讨论】:

  • 你需要做两件事。首先,接受您提出的所有问题的答案。其次,读一点面向对象的编程。 :) 如果你知道为什么需要一个抽象类,你就不会问为什么不能用它创建一个对象。无论如何,请参阅 Oli 发布的答案 :)
  • 几个小时后要交作业,是还是不是?

标签: c++ oop abstract-class


【解决方案1】:

因为否则它不会是“抽象的”。抽象基类的全部意义在于实例化它没有意义。相反,必须定义派生子类,然后实例化它们。

因此,抽象类没有大小(但这并不是说它们不会影响其派生子类的大小)。

【讨论】:

  • Eh... C++ 抽象基可以有状态;也许有些语言禁止它,但在 C++ 中这实际上很有用。 (此外,C++ 除了抽象基类之外还有抽象类,例如特征类型。)
  • @Potatoswatter:确实,它们可以有状态(即成员变量)。但我的观点是,你不能在抽象类上使用sizeof,这实际上是错误的!现在更正答案...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-07-05
  • 1970-01-01
  • 2013-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多