C++——静态成员函数与静态成员变量

静态成员函数与静态成员变量使用static进行定义。


静态成员函数和静态成员变量其实就是全局函数与全局变量。


静态成员对象被所有对象所共享,就是每一个对象都可以通过类方法去修改静态成员变量的值。


sizeof不会计算静态成员变量的大小,计算的是对象中成员变量的大小。


静态成员不需要对象就可以访问。

ju_xing_mian_ji::Print_geshu_mianji();//类名::函数名()


普通的成员函数必须具体作用于某个对象,静态成员函数不具体作用于某个对象。


静态成员函数只能调用静态成员变量,原因是,如果调用了非静态成员函数或者变量时,非静态成员函数和非静态成员变量的归属问题就会出错,其到底是属于对象还是属于静态成员函数(全局函数)。

版本a:

class ju_xing_mian_ji

{

public:

ju_xing_mian_ji(double x_, double y_);

~ju_xing_mian_ji();

static void Print_geshu_mianji();


private:

int x, y;

static int nmain_ji ;

static int nge_shu ;


};


void ju_xing_mian_ji::Print_geshu_mianji()

{


cout << "矩形的个数:" << nge_shu << " " << "矩形的总面积:" << nmain_ji << endl;

}

ju_xing_mian_ji::ju_xing_mian_ji(double x_, double y_)

{

x = x_;

y = y_;

nmain_ji += x * y;

nge_shu++;

}



ju_xing_mian_ji::~ju_xing_mian_ji()

{

nmain_ji -= x * y;

nge_shu--;

}

int ju_xing_mian_ji::nmain_ji = 0;//在C++中静态成员变量需要在所有内容外进行声明

int ju_xing_mian_ji::nge_shu = 0;//在C++中静态成员变量需要在所有内容外进行声明

int main()

{

ju_xing_mian_ji a(1, 2);

j

你可能感兴趣的:(C++——静态成员函数与静态成员变量)