cc31a_demo--CppPrimer_静态成员与继承-在派生类中访问基类中的static成员的方法
//*基类中的static成员,在整个继承层次中只有一个实例
//*在派生类中访问基类中的static成员的方法
//1.基类名::成员名
//2.子类名::成员名
//3.对象.成员名
//4.指针->成员名
//5.成员名
1 #include <iostream>//txwtech-CppPrimer_静态成员与继承cc31a_demo 2 using namespace std; 3 //*基类中的static成员,在整个继承层次中只有一个实例 4 //*在派生类中访问基类中的static成员的方法 5 //1.基类名::成员名 6 //2.子类名::成员名 7 //3.对象.成员名 8 //4.指针->成员名 9 //5.成员名 10 11 class A 12 { 13 public : 14 static std::size_t object_count() //静态成员函数 15 { 16 return 100; 17 } 18 protected: 19 static const std::size_t obj_count=99;//静态成员变量 20 }; 21 //A::obj_count = 99; 22 class B :public A 23 { 24 public: 25 //void f(const B &b) 26 void f(const B &b,B *b2) 27 { 28 //A::obj_count = 99; 29 cout << A::obj_count << endl;//基类名::成员名 30 cout << B::obj_count << endl;//子类名::成员名 31 cout << b.obj_count << endl;//对象 32 cout << b2->obj_count << endl;//指针 33 cout << obj_count << endl;//成员名 34 35 cout << A::object_count() << endl; 36 cout << B::object_count() << endl; 37 cout << b.object_count() << endl; 38 cout << b2->object_count() << endl; 39 cout << object_count() << endl; 40 } 41 42 }; 43 class C :public B 44 { 45 46 }; 47 48 int main() 49 { 50 //A::obj_count = 99; 51 B b; 52 b.f(b,&b); 53 getchar(); 54 return 0; 55 }
欢迎讨论,相互学习。
cdtxw@foxmail.com