当前位置: 首页 > 网络知识

C++快速入门 第二十二讲:静态属性和静态方法2

时间:2026-01-29 09:25:37

规则:

静态成员是所有对象共享的,所以不能在静态方法里访问非静态的元素。(因为每个对象都有自己的this指针,静态方法不是属于某个特定的对象,而是由全体对象共享的,静态成员存储地址与对象并不在一起)

非静态方法可以访问类的静态成员,也可以访问类的非静态成员。

this指针是类的一个自动生成、自动隐藏的私有成员,它存在于类的非静态成员函数中,指向被调用函数所在的对象的地址。

当一个对象被创建时,该对象的this指针就自动指向对象数据的首地址。

当我们调用一个方法时,this指针都会随着你提供的输入参数被秘密的传递给那个方法。

实例1:this指针应用

1 #include <iostream> 2 #include <string> 3 4 using namespace std; 5 class Pet//定义Pet类 6 ; 18 int Pet::count = 0;//注意这一句,他起码做了两件事(为count分配静态内存,初始化为0) 外部对静态属性进行声明 19 Pet::Pet(string theName)//构造函数 20 26 Pet::~Pet()//析构函数 27 31 int Pet::getCount()//返回count值 32 35 36 37 class Dog:public Pet//定义Dog类继承于Pet类 38 ; 42 Dog::Dog(string theName):Pet(theName)//Dog的构造函数继承于Pet类中的Pet(theName)函数,即该构造函数调用时将调用Pet函数 43 46 47 class Cat:public Pet//定义Cat类继承于Pet类 48 ; 52 Cat::Cat(string theName):Pet(theName)//Cat的构造函数继承于Pet类中的Pet(theName)函数 53 55 56 int main() 57 70 cout << "\n现在还剩下" << Pet::getCount() << "只宠物!"; 71 72 return 0; 73 }


上一篇:C++快速入门 第十三讲:联合、枚举和类型别名
下一篇:C++快速入门 第二十五讲:运算符的重载
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器
  • 英特尔第五代 Xeon CPU 来了:详细信息和行业反应
  • 由于云计算放缓引发扩张担忧,甲骨文股价暴跌
  • Web开发状况报告详细介绍可组合架构的优点
  • 如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳
  • 美光在数据中心需求增长后给出了强有力的预测
  • 2027服务器市场价值将接近1960亿美元
  • 生成式人工智能的下一步是什么?
  • 分享在外部存储上安装Ubuntu的5种方法技巧
  • 全球数据中心发展的关键考虑因素
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器

    英特尔第五代 Xeon CPU 来了:详细信息和行业反应

    由于云计算放缓引发扩张担忧,甲骨文股价暴跌

    Web开发状况报告详细介绍可组合架构的优点

    如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳

    美光在数据中心需求增长后给出了强有力的预测

    2027服务器市场价值将接近1960亿美元

    生成式人工智能的下一步是什么?

    分享在外部存储上安装Ubuntu的5种方法技巧

    全球数据中心发展的关键考虑因素