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 }
posted @ 2020-01-15 17:24  txwtech  阅读(687)  评论(0编辑  收藏  举报