这一定非常简单,但我找不到:
struct Test {
static int n;
void Save(int val) {
Test::n = val;
}
};
int main() {
Test t;
t.Save(2);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
为什么Test::n在第4行有未定义的引用?
您需要定义静态:
struct Test {
static int n;
void Save(int val) {
Test::n = val;
}
};
int Test::n = 0;
Run Code Online (Sandbox Code Playgroud)
请注意,定义必须出现在实现文件中,而不是标题中,否则会出现多重定义错误.
| 归档时间: |
|
| 查看次数: |
1302 次 |
| 最近记录: |