c++的一个概念

来源:百度知道 编辑:UC知道 时间:2024/06/07 00:39:36
static和默认参数的构造函数有什么区别
比如class box
{ static int height;}
int box::height=10;
在main里面 height=9可以吗?
然后下次调用height是调用哪个值?
还有static和参数赋初值有什么区别?
class box
{ public:
int height=10; 和static定义的有什么区别?
能说的详细点吗? 谢谢了,最好说说static的作用(就是用了static有什么效果,有什么后果,最好举一个例子).请不要贴一些网站.
如果答案好我可以加分!

最好说说static的作用(就是用了static有什么效果,有什么后果,最好举一个例子).

static声明的类成员!是所有类的实例所共享的!也就是说比如我用"box b1,b2;"
申请了2个对象b1 b2 我只要更改了box:height的值,那么对于b1和b2来说他们的height都改了。即b1.height=b2.height=box::height; 懂了吗?
也就是说staic声明的变量是属于类的,属于全部类对象的。共享的。

还有问题短消息联系我!

class box
{
static int height;
}
其含义就是对box这个类的所有实例,height只有一份,举例来说:
void main()
{
box b1, b2;
b1::height = 5;
int a = b2::height;
printf(a);
}

你会发现打印出来的值是 5 ,也就是说,b1和b2所使用的height是同一个值!更改其中一个,其他所有的都会随之改变~

如果前面不加static那么就不会有这种现象。

static 是静态成员函数 用它定义的变量是静态变量 可以这么理解 这个静态变量只要被赋值了之后 这个类里的所有对象的这个属性就都统一了。