一:类的静态成员变量
声明:
static int k;//类静态成员变量声明
定义:
int Time::k = 20;//类静态成员变量的定义
注:类的定义一般放在cpp文件的最上方,也就是在执行main()函数之前先让这个变量有个初值。
应用:类的static变量不属于某个对象,它只属于类,
Time mytime;
Time mytime1;
mytime.k = 10;
mytime1.k = 20;
cout << mytime.k << endl;
cout << mytime1.k << endl;
这里声明了两个对象,因为k最后赋值为20,所以两个打印都是20,即k不单独属于对象mytime或mytime1。
二:类的静态成员函数
声明:
static void add(int i);//类静态成员函数声明
定义:
void Time::add(int i)//类静态成员函数定义
{
k = i;
}
//应用:
Time mytime2;
mytime2.add(66);
cout << mytime.k << endl;
cout << mytime1.k << endl;
cout << mytime2.k << endl;
//三个都为66
//注意:在类静态成员函数中只能为静态成员变量赋值
例如以下就是错的:
//void Time::add(int i)//类静态成员函数定义
//{
// hour = i;
//}
//hour 是普通成员变量
//总结:在类的静态成员函数定义和静态成员变量定义中,不用带static
//static void Time::add(int i)//类静态成员函数定义
//{
//
//
//}
//错误
static int Time::k = 20;//错误