Re: [問題] initialize const data member

看板C_and_CPP (C/C++)作者 (上大學好忙喔)時間15年前 (2011/04/13 22:47), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串3/3 (看更多)
※ 引述《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,
static const int才可在class內初始化吧,其他都要宣告
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
請愛用大E編輯內文, 勿濫用回文機制
04/13 23:18, 1F
文章代碼(AID): #1DfRTqDV (C_and_CPP)
文章代碼(AID): #1DfRTqDV (C_and_CPP)