Re: [問題] initialize const data member
※ 引述《CrBoy (上大學好忙喔)》之銘言:
> (無關的部份吃掉)
如果是static member的話 必須在宣告的地方做初始化
class A{
static int x = 1;
}
因為static member是共享於該class所有instance 不能在constructor初始化
因為constructor在你每次產生物件的時候都會執行一次
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.116.154.15
推
04/11 22:48,
04/11 22:48
→
04/11 22:48,
04/11 22:48
抱歉 的確是我弄錯了
對於non-const static member的初始化 如果寫在class definition中 g++會噴這個錯誤
error: ‘int A::x’ is a static data member;
it can only be initialized at its definition
他說的 "it can only be initialized at its definition"
指的是必須在實作檔中定義
int A::x = 1
像這樣的初始化
只有 const static member 才能做 in-class initialization
抱歉沒有仔細搞清楚亂回文 下次我會多注意的<(_ _)>
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.165.96.102
→
04/13 23:18, , 1F
04/13 23:18, 1F
討論串 (同標題文章)
完整討論串 (本文為第 3 之 3 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章