在下面的代碼:靜態函數和非靜態變量
class A
{
public:
static void StaticFunction(int variable){ }
void NonStaticFunction() { }
private:
int nonStaticVariable;
};
我需要得到一個「變量」和「NonStaticFunction」
我已經嘗試做「nonStaticVariable」靜態和分配使用它的值爲'變量',但是我仍然必須在'NonStaticFunction'中使用靜態變量,這會引發鏈接器錯誤。
Error 2 error LNK2001: unresolved external symbol "public: static unsigned int A::staticVariable" ([email protected]@@2IA)
有沒有解決它的辦法?
我不知道你想在這裏實現什麼......你想要的設置爲的所有實例的一些數據類,並且你需要在(non-'static')成員函數中使用這些數據? – BoBTFish
這個錯誤並不是因爲你在一個非靜態函數中使用靜態變量,而是因爲你必須**定義**(即告訴編譯器爲它分配內存而不是聲明它)你的靜態變量通過添加int A :: staticVariable;'在代碼中的某處。 –