C++为什么在派生类中修改了基类protected数据成员,但基类的protected数据却没有改变
程序代码:
#include <iostream> #include <cstring> using std::cout; using std::endl; class A { protected: int n; public: A() {n = 10;} void show() { cout << n << endl; } }; class B : public A { public: void showb() { cout << n << endl; } }; class C : public A { public: void setn() { n = 100; } }; int main() { A a; B b; C c; b.showb();//显示基类A中的n没毛病 c.setn();//通过类C重新设置A中的n为100 b.show();//按理说这里应该是100 a.show();//这里也应该是100 //但实际上其它从A类派生来的全都没有改变,只改变了C中的n //难道派生类不共享基类保护型成员数据吗 return 0; }