# 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关键字,这样声明的成员就叫做静态成员。
静态成员不属于类的任何对象,所以并不是对象建立时被定义的,所以它不能由类的构造函数初始化,一般也不能在类内初始化。
一般来说无论怎样静态成员变量都需要在类外进行定义。