作者ric2k1 (Ric)
看板EE_DSnP
標題Re: [問題] 關於class的data member
時間Sat Dec 8 23:16:19 2007
※ 引述《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