/*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(); }