【发布时间】:2013-08-02 18:28:36
【问题描述】:
#include<iostream>
using namespace std;
class sample {
public:
static int x;
};
//int sample::x = 20;
int main() {
sample s1;
int sample::x = 30;
}
当我编译这个程序然后得到一个错误Invalid use of qualified-name 'sample::x'
我知道我收到此错误是因为 int sample::x = 30; in main.
但我不明白为什么我不能在 main 中定义 int sample::x = 30;?
【问题讨论】:
-
你为什么要在 main 中初始化一个类的静态属性,而不是在类的 .cpp 中,或者在 .h 的全局范围内的类定义之后?
-
@Manu343726 我只是想澄清我的概念!
-
没有理由生气,我只是做了一个问题,因为我不明白你在做什么
-
@Manu343726 你倒过来了,全局变量和静态变量被认为具有静态存储持续时间
-
@Manu343726 我已经修改了它
标签: c++ class static-members static-variables