静态数据成员是在一个类中用关键字static声明的数据成员。在C++中,一般使用静态成员来代替C语言的全局变量,以达到数据共享。C和C++的全局变量有一定的局限性,可以任意被修改,也容易和其它的变量名冲突,故在C++中,一般不使用全局变量。

静态数据成员必须进行初始化,初始化应在类体外进行,静态数据成员也可以引用,但不能引用私有数据部分。

接下来看一个例子:

#include <iostream>
#include <cstring>
using namespace std ;
class Student
{
	private :
		//静态成员变量
		static int age ;
		static float score ;
		string name ;
	public :
		static int x , y ;
		//构造函数
		Student();
		//析构函数
		~Student();
		//设置信息
		int setstuinfo(int age , float score , string name);
		//打印信息
		int Printstuinfo();
};

//静态成员必须初始化
int Student::age = 24 ;
float Student::score = 86.6 ;
int Student::x = 100 ;
int Student::y = 200 ;

Student::Student()
{
	this->name = "YYX" ;
	cout << this->name << endl ;
	cout << this->age << endl ;
	cout << this->score << endl ;
}
Student::~Student()
{
	this->name = "NULL";
	cout << this->name << endl ;
}
int Student::setstuinfo(int age , float score , string name)
{
	this->age = age ;
	this->score = score ;
	this->name = name ;
}

int Student::Printstuinfo()
{
	cout << this->name << endl ;
	cout << this->age << endl ;
	cout << this->score << endl ;
}

int main(void)
{
	Student stu1 ;
	//指针
	Student *p ;
	p = &stu1 ;
	p->setstuinfo(25,96,"XXX");
	p->Printstuinfo();
	//静态成员的引用---->不可以引用私有成员
	cout << p->x << endl ;
	cout << p->y << endl ;
	Student::x = 80 ;
	Student::y = 90 ;
	cout << p->x << endl ;
	cout << p->y << endl ;
	return 0 ;
}

运行结果:

YYX

24

86.6

XXX

25

96

100

200

80

90

NULL

最新文章

  1. PHP-----文件系统的交互
  2. Java继承与组合
  3. iOS出现&lt;object returned empty description&gt;的解决方法
  4. MVC - Ajax
  5. activiti集成drools实验
  6. How to uninstall (remove) JAVA from OS X Lion
  7. 【Egret】Native版本 视频播放器(android)
  8. leetcode算法题3:分组,让每个组的最小者,相加之后和最大。想知道桶排序是怎么样的吗?
  9. 单点登录,session,jsonp(待更新)
  10. Python知识目录
  11. Python 爬虫: 抓取花瓣网图片
  12. Dojo与jQuery综合比较分析
  13. FCC JS基础算法题(8):Slasher Flick(截断数组)
  14. PyCon大会Python主题演讲摘要
  15. SP8093 JZPGYZ - Sevenk Love Oimaster 解题报告
  16. [转]cron表达式详解
  17. 基于thinkphp的API日志
  18. WebGL 进入三维世界
  19. C#中发送邮件,包含Html代码 CDO.Message
  20. 浅谈TCP/IP(new 常见面试问题)

热门文章

  1. appium实现adb命令 截图和清空EditText
  2. Django——请求生命周期
  3. php源码安装,并配置apache支持php
  4. linux mkisofs(genisoimage)命令用法
  5. Apache 配置参数
  6. float 为什么可以表示很大的整数
  7. Oracle数据类型(4)
  8. 在react-native中使用redux
  9. 【P2944】地震损失(最大流,洛谷)
  10. AJAX基础知识点——思维导图