看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《littleshan (我要加入劍道社!)》之銘言: : ※ 引述《justinC (無)》之銘言: : : 有辦法透過member function 來存取private static var嗎 : : 我編譯都會說無法解析 該變數...所以來問問看 : 你要在某一個編譯單元內宣告他的實體 : 像這樣 : ___ A.h ___ : Class A { : ... : static int i; : void f(); : }; : ___ A.cpp ___ : A::f() : { : ... : } : int A::i = 0; // 或是用其他的初始值也可以 =====
sunkill:記得 static 原本會自重初始為 0 放 class 應該也一樣吧 04/22 09:47
SHANGOYANYI:沒錯 static變數預設初始就是0 04/22 15:30
如果是說在 A.cpp 裡面那行 int A::i = 0; 的 "= 0;" 可以省略,那沒錯 但是那行主要功用是要定義 int A::i 這個步驟可是不能少的 只有 include 進 A.h 但是沒有實際定義那個 static variable 之後就會造成 linking error 而若要被多個 .cpp 檔案使用,又直接可以寫在 header 裡面的 static variable 則只有 static const variable 可以直接在 class 裡面定義了 (可惜 VC6 不行,VC6 的解法跟 non-const static variable 一樣) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.70.137.117
yoco315:推薦這篇文章 04/22 19:36