作者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