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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于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)