YuC*_*Lan 19 c++ static-members member-initialization
class A {
int x;
static int i;
};
int x = 10;
int A::i = x;
Run Code Online (Sandbox Code Playgroud)
当我编译上面的代码时,出现错误
<source>:8:12: error: invalid use of non-static data member 'A::x'
8 | int A::i = x;
| ^
<source>:2:9: note: declared here
2 | int x;
| ^
Run Code Online (Sandbox Code Playgroud)
是什么导致了这个错误?
mol*_*ilo 21
这是一个特殊的语言怪癖 - 左侧的范围解析, in int A::i,影响右侧的查找范围,因此实际上指的是x的成员A。
重命名变量之一,或x显式指定所需的范围:
int A::i = ::x;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3133 次 |
| 最近记录: |