//static变量实现同类对象的共享,它不属于任何一个具体对象(每个对象都可以使用它)
//static变量的空间并不是在对象所在的空间,而是单独开辟的空间,所以每个对象才可以调用它
//static变量属于全局变量
//static变量,要在类外进行初始化
#include<iostream>
using namespace std;
class Box
{public:
Box(int l,int w)
{
length = l;
width = w;
}
int volume()
{
int v = length * width*height;
cout << "高度是:" << height<<endl;
cout << "体积是:"<<v << endl;
return v;
}
//因为静态变量的访问权限是private,所以想修改height的值,得使用显式的函数修改
static int height;//如果是public形式的,可以直接进行修改,见main()
static void ChangeHeight(int h)//注意修改静态变量的函数前也要加static
{
height = h;
}
~Box() {}
private:
int length;
int width;
//static int height;
};
//static变量,要在类外进行初始化
int Box::height = 10;
int main()
{
Box b1(10,20);
b1.volume();
cout << "-----------------" << endl;
b1.ChangeHeight(4);
b1.volume();
cout << "-----------------" << endl;
Box::height=20;//不要写成Box::height(20);,会报错,当height的访问方式是public时这样写
b1.volume();
return 0;
}
C++笔记:关于static
最新推荐文章于 2024-05-26 17:43:21 发布