【发布时间】:2010-04-21 04:41:56
【问题描述】:
假设我有
class A { public: void print(){cout<<"A"; }};
class B: public A { public: void print(){cout<<"B"; }};
class C: public A { };
如何在内存级别实现继承?
C 是否将print() 代码复制到自身,或者它是否有一个指向它的指针,该指针指向代码的A 部分?
当我们覆盖之前的定义时,同样的事情是如何发生的,例如在B(在内存级别)?
【问题讨论】:
-
您的意思是“C 类”从 C 类继承吗?
-
正确答案中有很多细节。如果您愿意购买/阅读有关该主题的书籍,可以阅读 Stan Lippman 的《深入了解 C++ 对象模型》。
-
你不是说“打印”是虚拟的吗?
-
@squelart:不,我没有。我想先了解正常继承的工作原理。
标签: c++ memory inheritance implementation