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;
}

最新文章

  1. Javascript猜数字游戏
  2. Python开发【第五篇】:Python基础之杂货铺
  3. 转:如何学习javascript
  4. 【转】nginx配置location总结及rewrite规则写法
  5. Team Homework #2 Decide the roles of each team member ——IloveSE
  6. Android开发之计算器(一)界面设计
  7. cocos2d-x CCScale9Sprite
  8. Android UI:机智的远程动态更新策略
  9. Oracle 大数据处理(一)
  10. javascript 作用域链
  11. 【Java面试题】19 final,finally和finalize的区别
  12. 模块and包
  13. [POI2013]Usuwanka
  14. 联想服务器RD450 配置RAID5
  15. SWIFT中数字格式
  16. Azure-如何排查应用程序网关返回 HTTP Code 502 或客户端得到应用程序网关响应慢的问题(二)
  17. 对象的操作-javascript
  18. 一段话理解 MDX中的Select 、轴、COLUMNS、ROWS
  19. 第二百六十四节,Tornado框架-基于正则的动态路由映射分页数据获取计算
  20. linux 块设备-整理(一)

热门文章

  1. 脚本其实很简单-windows配置核查程序(1)
  2. Java 语言中 Enum 类型的使用介绍【转载】
  3. git pull和git merge区别&amp;&amp;Git冲突:commit your changes or stash them before you can merge. 解决办法
  4. 工作笔记-javascript-网络层封装
  5. mac shell
  6. ruby中的私有方法和保护方法
  7. 手写ArrayList、LinkedList
  8. UI自动化测试框架之Selenium关键字驱动 (转)
  9. oracle中length、lengthb、substr、substrb用法小结
  10. Decker hello world