22.C++类的共享

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



   

你可能感兴趣的:(22.C++类的共享)