类的继承问题
在学类的多态性的时候,会把派生类的对象的地址赋值给基类的指针, 比如 class B{
public : int a, b;
};
class C : public B{
public : int c;
};
B * b;
C c1; C * pc;
b = &c1;
听老师说此时 b 指向了 c1 的地址,就是说保存了c1的全部信息,即如果
pc = b;那么pc就能访问c1 的全部成员了,也就是pc保存并能访问c1所有的东西了,而 b 就不能访问 c1.c这个成员,但是在执行 B * b; 时,系统规定 b 所保存的地址只有B类的对象那么大(8个字节) ,但是C类的对象却有 12个字节,就是说子类的对象所需的内存空间较大,那么怎么使得 b 这个指针保存 c1 的所有成员呢??
各位大侠帮帮忙,我被困扰好久了,拜托了!!
请详细解答一下,先谢了。