/*1.静态成员变量
一般情况下,同一个类的不同对象具有相同的属性和不同的属性值,也就是说,
当用同一个类定义多个对象时,每个对象都有自己的数据成员,这些数据成员分别占有不同的内存单元。
当不同对象的某个特定成员的值相同是,为了节省内存,通常将该数据成员设定为静态数据成员。
静态数据成员一搬定义格式:
class 类名
{
...
static 变量类型 静态成员变量名;
...
};
静态数据成员只能在类中定义,并且只能在类外声明并初始化,其初始化格式如下:
数据类型 类名:静态数据成员变量名=初值;
*/
#include <iostream>
class student
{
public:
static int one;//定义静态数据成员
char sex;
void get();
};
int student::one=101;//静态数据成员初始化
void student::get()
{
one++;
sex='F';
}
int main(int argc, const char * argv[])
{
student stu1,stu2;
std::cout<<stu1.one<<std::endl;//101
stu1.get();
std::cout<<stu1.one<<std::endl;//102
stu2.get();
std::cout<<stu1.one<<std::endl;//103
std::cout<<stu1.sex<<std::endl;
std::cout<<stu2.one<<std::endl;//103
return 0;
}
静态数据成员的使用
#include<iostream>
class Date
{
public:
void get(int _month, int _day);
void display();
private:
static int year;//定义静态数据成员
int month,day;
};
int Date::year=2013;
void Date::get(int _month, int _day)//设置月份、日期
{
month=_month;
day=_day;
}
void Date::display()
{
std::cout<<year<<"-"<<month<<"-"<<day<<std::endl;
year++;
}
int main(int argc,const char *argv[])
{
Date date1,date2;
date1.get(10,8);
date2.get(11,11);
date1.display();
date2.display();
}