2013-09-27 102 views
-1
class A { 
public: 
    static int i; 
    static int inc(); 
}; 

int A::inc() { 
    i++; 
    return i; 
} 

int main() { 
    A::inc(); 
} 

正如我们所知,我们可以从静态方法访问静态成员变量。 但是这个代码是给我一个错误从静态函数获取静态变量C++

"A::i", referenced from: 
    A::inc()  in ccn8PKhC.o 
ld: symbol(s) not found for architecture x86_64 

可以有一个人请告诉我,我失去了

回答

5

这是一个连接错误。你已经声明了变量,但是你还没有定义它,所以链接器找不到它。在.cpp文件某处全球

int A::i = 0; 

(外类和任何函数)来定义它:

添加此。如果您的项目中有多个.cpp文件,则该定义仅需要其中的一个。

+0

感谢它工作 –