jia*_*afu -2 c++ static-variables
class ClassObject {
public:
ClassObject();
virtual ~ClassObject();
private:
int x;
};
int ClassObject::x=10;
Run Code Online (Sandbox Code Playgroud)
为什么编译失败?我认为如果可以通过这种方式初始化静态成员,那么对于非静态成员也应该是可能的.
静态成员很特别.一旦定义了类,它们就会为它们分配一个内存.而且无论我们创建的那个类有多少个对象,所有这些对象都指向同一块内存.
非静态成员不是这种情况.除非您创建该特定类的对象,否则非静态成员不会分配任何内存,因此尝试以上述方式实例化它们会导致编译器错误.
| 归档时间: |
|
| 查看次数: |
1928 次 |
| 最近记录: |