【原文写于2005年5月4日03:11星期三,注】
“虚成员变量”?!
注意!!没有“虚成员变量”,C++不会帮你多态
所以,如果在基类和派生类中定义了命名一样的成员变量,就要十分小心了
代码 |
#include using namespace std ; class A { public: A() { m_c = 'A' ; } char m_c ; } ; class B : public A { public: B() { m_c = 'B' ; } char m_c ; } ; int main() { A a ; B b ; A * p = &b ; cout << p->m_c << endl ; cout << ((B*)p)->m_c << endl ; return 0 ; } /************输出***************/ A B |
派生类中保存了自己的成员变量和基类的成员变量,具体引用哪个,根据类型决定
这与虚函数是完全不同的