看板 EE_DSnP 關於我們 聯絡資訊
※ 引述《popo4231 (小泰)》之銘言: : 標題: [問題] 關於class的data member : 時間: Sat Dec 8 17:13:55 2007 : : 請問為何只有const static的data member 才能initialize於class definition中 : const 卻不行? : : -- : ※ 發信站: 批踢踢實業坊(ptt.cc) : ◆ From: 140.112.241.177 : 推 ilway25:我記得老師說過 Data member 不是真的變數? 12/08 19:37 Yes, data member 只是用來定義 class 裏面的 data component, 是在宣告 class object 時才真正變成此 object 的 data variable 而實際 存在記憶體中 : 推 Knossos:class datamember的initialization都要在constructor裡面 12/08 20:28 : → Knossos:但是static比較特殊,它不能在constructor被initialize 12/08 20:29 : → Knossos:因為它並不是在創造物件時才出現的變數,而是程式一開始就 12/08 20:30 : → Knossos:存在。 12/08 20:30 : → Knossos:所以const static要在definition裡面initilize, 12/08 20:31 : → Knossos:而static則要在main前面initialize 12/08 20:31 Yes, 而且只有 const static 才能在 class 裏面 initialize. 一般的 static data member 必須在 .cpp 檔中 initialize, 不一定是 main.cpp. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.121.134.54