看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《CrBoy (上大學好忙喔)》之銘言: > (無關的部份吃掉) 如果是static member的話 必須在宣告的地方做初始化 class A{ static int x = 1; } 因為static member是共享於該class所有instance 不能在constructor初始化 因為constructor在你每次產生物件的時候都會執行一次 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.154.15
tomap41017:static const int才可在class內初始化吧,其他都要宣告 04/11 22:48
tomap41017:之後再執行初始化 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
loveme00835:請愛用大E編輯內文, 勿濫用回文機制 04/13 23:18