#?include<iostream> #include<string.h> using?namespace?std; class??TStudent?{ ????static?float?m_ClassMoney;? ????char?name1[3][100]; ????static?int?j;
public: ????void?InitStudent(char?name[]); ????void?ExpendMoney(float?money); ????void?ShowMoney(); }; float?TStudent::m_ClassMoney?=?1000; int?TStudent::j?=?0; void?TStudent::InitStudent(char?name[]) { ????strcpy_s(name1[j],?name); ????j++; } void?TStudent::ExpendMoney(float?money) { ???m_ClassMoney=?m_ClassMoney?-?money; } void?TStudent::ShowMoney() { ????cout?<<"班费还剩余"<<?m_ClassMoney?<<?endl; } int?main(void) { ????TStudent?A,?B,?C; ????char?name[3][100]; ????float?money; ????for?(int?i?=?0;?i?<?3;?i++) ????{ ????????cout?<<?"请输入学生姓名"?<<?endl; ????????cin?>>?name[i]; ????} ????A.InitStudent(name[0]); ????B.InitStudent(name[1]); ????C.InitStudent(name[2]); ????cout?<<?"请输入消费金额"?<<?endl; ????cin?>>?money; ????A.ExpendMoney(money); ????A.ShowMoney(); ????cout?<<?"请输入消费金额"?<<?endl; ????cin?>>?money; ????B.ExpendMoney(money); ????B.ShowMoney(); ????cout?<<?"请输入消费金额"?<<?endl; ????cin?>>?money; ????C.ExpendMoney(money); ????C.ShowMoney(); } ?
由关键字static修饰说明的成员,称为静态成员。
静态成员为所有对象共享,只有一份存于公用内存中。
静态成员包括静态数据成员和静态函数成员。
静态成员,指的是在c++类中声明成员时可以加上static关键字,这样声明的成员就叫做静态成员。
静态成员不属于类的任何对象,所以并不是对象建立时被定义的,所以它不能由类的构造函数初始化,一般也不能在类内初始化。
一般来说无论怎样静态成员变量都需要在类外进行定义。 ?
|