300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > c++之静态数据成员与静态成员函数

c++之静态数据成员与静态成员函数

时间:2022-01-23 21:34:02

相关推荐

c++之静态数据成员与静态成员函数

什么是静态数据成员?

数据成员我们之前学过,是对象的属性。

同一个类,不同的对象,可能拥有不同的属性

例如一个车行,不同的车有不同的颜色,不同的耗油量。。。等等属性

但是当我们统计一个公有的数据,用数据成员有点麻烦

比如每一辆Car,里面有一个数据成员CarNum,记录了车行的总车数,

如果每一个对象,都分别带着CarNum这个数据成员,会有些不方便。

为此,我们需要一个类公有的数据成员,就是静态数据成员

每个对象与静态数据成员关系如下图

静态数据成员的定义以及初始化

静态数据成员用关键字“static”定义

如果静态数据成员是public,可以在主函数里面

用 类名::静态数据成员名 访问

由于静态数据成员是类公有的,所以不能在构造函数初始化,应该在类定义完成后,对其进行初始化

定义格式:

class Car{public:static int CarNum;Car(){CarNum++;}//新建一个Car对象时候,车数量加一~Car(){CarNum--;}//销毁一个Car对象时候,车数量减一};int Car::CarNum=0;//静态成员函数的初始化

什么是静态成员函数?

上面我们了解了什么是静态数据成员。

静态成员函数也可以类比,是一个类的共有的成员函数

定义格式:

class Car{public:static int CarNum;Car(){CarNum++;}//新建一个Car对象时候,车数量加一~Car(){CarNum--;}//销毁一个Car对象时候,车数量减一static int getCarNum(){return CarNum;}};int Car::CarNum=0;//静态成员函数的初始化int main(){Car::getCarNum();//静态成员函数调用return0;}

几点注意:
由于静态成员函数是共有的,所以参数列表里面没有隐含this指针,不可以用const修饰静态成员函数静态成员函数只能访问静态数据成员,不可以访问普通的数据成员

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。