我按照這些指令:靜態函數連接錯誤
is it possible to define the static member function of a class in .cpp file instead of its header file? http://www.exforsys.com/tutorials/c-plus-plus/c-plus-plus-static-functions.html
然而,我的例子給給我鏈接錯誤:
"Example::Value", referenced from:
Example::PrintA() in Text.o
Example::PrintB() in Text.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
這裏是我的Text.h
文件:
class Example
{
public:
static int Value;
public:
static void PrintA();
void PrintB();
};
我的Text.cpp
文件:
void Example::PrintA()
{
cout << Value;
}
void Example::PrintB()
{
cout << Example::Value;
}
我如何解決這個問題,使我能夠打印來自PrintA
和PrintB
價值?我在Mac OS X 10.6.8和Xcode 3.2上...
您是否正確intialise靜態變量 – 999k 2013-05-14 04:59:00
[把類的靜態成員定義爲CPP文件? - 技術限制]的可能重複(http://stackoverflow.com/questions/3409428/putting-class-static- members-definition-into-cpp-file-technical-limitation) – iammilind 2013-05-14 05:02:35
@iammilind謝謝。剛纔我讀了這篇文章。 ^^如果我理解正確,我不僅需要聲明'static'變量,我還需要通過文件中要使用的初始化來告訴鏈接器。 – 2013-05-14 05:29:29