[問題] static member只能在class外面初始化?

看板C_and_CPP (C/C++)作者 (ckvir)時間13年前 (2013/04/15 18:54), 編輯推噓1(103)
留言4則, 3人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 我目前在看別人的程式碼 看到修飾詞的地方,其中有個地方不太懂 有兩個檔案,我只打出重要部分 Test.h Test.cpp Test.h內容為: class Test{ protected: Test(); private: static Test *mT; } Test.cpp內容為: Test *Test::mT = NULL; Test::Test() { } 目前這樣是對的 但是我把Test *Test::mT = NULL; 移到建構子Test::Test()中就會出錯 但是我去查static代表可以直接用Class::直接存取變數阿 為什麼放在建構子外OK 移進去就會出錯??? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.170.12.44

04/15 18:56, , 1F
關鍵字: "static 成員變數"
04/15 18:56, 1F

04/15 18:56, , 2F
加一個 "初始化"
04/15 18:56, 2F

04/15 19:35, , 3F
外面那個是定義, 定義必須存在
04/15 19:35, 3F

04/15 19:49, , 4F
一個compile time一個run time吧
04/15 19:49, 4F
文章代碼(AID): #1HQznHMy (C_and_CPP)
文章代碼(AID): #1HQznHMy (C_and_CPP)