为什么我得到未引用的局部变量

Dmi*_*try 0 c++ visual-c++ c++11

它是一个编译器错误(我使用VS2013的Visual C++ 12)或者我不明白的东西?但我收到警告C4101:'a':此代码中未引用的局部变量

class A
{
public:
    static int i;
};
int A::i;

int main()
{
    A a;
    a.i = 9;
}
Run Code Online (Sandbox Code Playgroud)

小智 5

i是静态的,这意味着它属于类,而不是实例.你应该写A::i = 9.当您考虑到这一点时,您应该看到该变量a实际上从未被使用过.