C++的类中怎么用静态变量?

如题所述

C++类支持静态成员变量,在使用的时候,遵循类内声明,类外定义的原则。即在类内部进行声明该变量的类型以及静态属性,但不可以赋初始值,而是要在类外定义,同时赋初始值。

如

class class_type
{
   static var_type var; 
};
var_type class_type::var = init_value;

初始值部分,=init_value可以省略,省略时默认赋值为0。


在使用上:

1 成员函数均可使用静态变量;

2 如果静态变量属性为public,那么任意一个对象a均可使用静态变量var,使用形式为 a.var;

3 如果静态变量属性为public,那么可以用如下形式,在类class_type有效的范围内,使用静态变量var:

class_type::var

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-04-10
静态变量要在类外部赋值。。。
第2个回答  2012-04-09
静态变量要在类外部赋值。。。
第3个回答  2018-06-16
在c++里,遵循静态成员函数引用静态变量的原则,此外对与类的话,如果定义了静态变量,那么只能够在类外赋值,类识不分配内存的,static一旦赋值就有了内存。
第4个回答  推荐于2017-09-30
例如:
在类内定义:static int a;
在类外面(不在其他函数中)初始化:int 类名::a=0;(0为赋给a的初始数值);
静态变量属于类,可以用类名调用,而且静态变量是每个同类对象共用的变量,就好比共享文件一样,谁都可以共享使用。
其实和非静态变量的使用是一样的,两者没有任何区别,任何属于类的函数都可以直接调用它。
另外就是静态函数,同样静态函数和原来的成员函数没有任何区别,它的使用和静态变量的使用一样。
可能你想知道的是,另外一个常量修饰符const,常数据成员只能用形参列表赋初值,而且不能改变,常数据成员的使用和普通数据成员除了不能修改它的值外,没有任何区别!
而常成员函数的使用仅限于常对象,其他的和普通成员函数没有任何区别。本回答被提问者采纳
相似回答