济南到东营专线:请问C++里的静态数据成员是怎么回事?

来源:百度文库 编辑:神马品牌网 时间:2024/05/03 06:19:05
书上定义说是为了实现同一个类中多个对象之间的数据共享而设的?难道同一个类中的不同对象不能共享数据吗?请问静态数据成员和普通的数据成员有何区别,谢了!

?1、没错!
?2、同一类中的不同对象不能共享非静态成员变量;
?3、静态数据成员(staic)与普通成员(instance)是对立的;一个可在多个实例间共享,一个不可!

//如果你有一个类myclass,类中有个静态成员 n。
class myclass
{
public:
static int n;
};

myclass a,b;//现在你用这个类定义两个对象a 和 b 。
a.n=100 //现在你给a.n赋值
b.n=101 //给b.n赋值

现在a.n是多少呢?
答:等于101。
因为实际上,a.n和b.n实际是同一个内存单元

在c++的类中静态的数据成员不可以在类中初始化.所谓的共享是说这个静态的数据成员不是属于该类某个具体的对象,而是共享的.这个共享的意思是所有的对象都可以访问它,但每个对象都不可以修改它的值.可以说它是公共的,某个类没有权利在 没有取得其他的对象的前提下随意的改动这个公用的数据!