Re: [問題] class 內的static 變數

看板C_and_CPP (C/C++)作者 (有趣生活)時間18年前 (2006/04/22 19:15), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串1/1
※ 引述《littleshan (我要加入劍道社!)》之銘言: : ※ 引述《justinC (無)》之銘言: : : 有辦法透過member function 來存取private static var嗎 : : 我編譯都會說無法解析 該變數...所以來問問看 : 你要在某一個編譯單元內宣告他的實體 : 像這樣 : ___ A.h ___ : Class A { : ... : static int i; : void f(); : }; : ___ A.cpp ___ : A::f() : { : ... : } : int A::i = 0; // 或是用其他的初始值也可以 =====

04/22 09:47,
記得 static 原本會自重初始為 0 放 class 應該也一樣吧
04/22 09:47

04/22 15:30,
沒錯 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

04/22 19:36, , 1F
推薦這篇文章
04/22 19:36, 1F
文章代碼(AID): #14IX1hGt (C_and_CPP)
文章代碼(AID): #14IX1hGt (C_and_CPP)