c++静态数据成员

来源:百度知道 编辑:UC知道 时间:2024/05/27 07:49:51
c++类的构造函数可以初始化私有的静态数据成员吗???

静态成员是不能用构造函数初始化的.类的数据成员是在动态存储区的,而静态成员是在静态存储区的。对象生命结束后系统调用析构函数释放内存,而静态成员是不会被析构函数释放的,直到程序结束。如果定义多个对象,用构造函数对静态成员初始化,那静态成员的值到底是哪一个呢!!

类的静态成员不能由类的构造函数来初始化。因为即使不存在类的任何对象时,类的静态成员依然存在并且可以被使用。类的静态成员也不能访问任何类的非静态成员。

不能!
////////////////////////////////////////////
#include <iostream>

class A{
private:
static int a;

public:
A(){
a=200;//这里是赋制值不是初始化
};
};
int A::a=100;//这里初始化 没这句就错了
int main()
{
A m;
}

那要看你如何理解初始化了,只要有一个值就是初始化的话,就可以在构造函数里面直接给值。需要注意的是静态成员无论在那个地方修改影响都是全局的。

可以。