C++(三十一) — 静态成员变量、静态成员函数
2024-10-20 16:46:58
1、静态成员变量
类的静态成员变量是,由该类的所以对象共同维护和使用的数据成员,每个类只有一个副本,是类数据成员的一种特例。采用 static 关键字声明。
目的:实现同一类中不同对象之间的数据共享。不包含 this 指针,因为是属于整个类的。
初始化必须在类外进行,类内声明,类外初始化。可以通过类名,或对象名访问。
class student
{
public:
student(char* pName = "no name"); // 此处设置了默认参数
~student();
void printS()
{
cout << "The number of student is " << count << endl;
}
private:
static int count; // 类内声明,类外初始化
string name;
}; student::student(char* pName)
{
cout << "creat one student" << endl;
name = pName;
count++; //自加1
}
student::~student()
{
cout << "destruct one student" << endl;
count--; // 自减1
cout << "The number of student is " << count << endl;
}
// 声明静态成员函数
int student::count = ; void main()
{
student s1;
s1.printS();
student s2;
s2.printS(); system("pause");
}
每次定义一个学生类,静态成员变量 count 就自加1。
2、静态成员函数
静态成员函数只能调用静态成员变量,不能调用一般的变量(因为一般变量属于对象,对象不同就不知道调用哪个)。
可以通过类名、或者对象名进行调用,它是属于一个类的函数。非静态的公有成员函数,只能通过对象、对象指针调用。
static void printS()
{
cout << "The number of student is " << count << endl;
}
最新文章
- Javascript猜数字游戏
- Python开发【第五篇】:Python基础之杂货铺
- 转:如何学习javascript
- 【转】nginx配置location总结及rewrite规则写法
- Team Homework #2 Decide the roles of each team member ——IloveSE
- Android开发之计算器(一)界面设计
- cocos2d-x CCScale9Sprite
- Android UI:机智的远程动态更新策略
- Oracle 大数据处理(一)
- javascript 作用域链
- 【Java面试题】19 final,finally和finalize的区别
- 模块and包
- [POI2013]Usuwanka
- 联想服务器RD450 配置RAID5
- SWIFT中数字格式
- Azure-如何排查应用程序网关返回 HTTP Code 502 或客户端得到应用程序网关响应慢的问题(二)
- 对象的操作-javascript
- 一段话理解 MDX中的Select 、轴、COLUMNS、ROWS
- 第二百六十四节,Tornado框架-基于正则的动态路由映射分页数据获取计算
- linux 块设备-整理(一)
热门文章
- 脚本其实很简单-windows配置核查程序(1)
- Java 语言中 Enum 类型的使用介绍【转载】
- git pull和git merge区别&;&;Git冲突:commit your changes or stash them before you can merge. 解决办法
- 工作笔记-javascript-网络层封装
- mac shell
- ruby中的私有方法和保护方法
- 手写ArrayList、LinkedList
- UI自动化测试框架之Selenium关键字驱动 (转)
- oracle中length、lengthb、substr、substrb用法小结
- Decker hello world