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 @   txwtech  阅读(696)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示