[問題] C++ 成員宣告問題

看板C_and_CPP作者 (nikeasyanzi)時間9年前 (2014/11/09 20:43), 9年前編輯推噓4(4010)
留言14則, 9人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) GCC 問題(Question): class AAA{ public: int a=2; int b=a+1; int c[a]; }; 餵入的資料(Input): 預期的正確結果(Expected Output): 應該可以正確宣告 一塊大小是2個int的記憶體給陣列C阿? 錯誤結果(Wrong Output): 但gcc 在 int c[a]這行報錯 改成int c[AAA::a] 也一樣 改成int c[2]就ok 就是invalid use of not-static member data 有點白癡的問題 懇請板上先進指教! 感謝! -- CyberPanel 5000CP 換 NT.500 http://myurl.com.tw/05bd EmailCash 5000e 換 NT.500 http://myurl.com.tw/rgdq -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.34.5.200 ※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1415536993.A.73E.html ※ 編輯: nikeasyanzi (114.34.5.200), 11/09/2014 20:44:19

11/09 20:44, , 1F
陣列大小只能是常數
11/09 20:44, 1F

11/09 20:44, , 2F
加const
11/09 20:44, 2F

11/09 20:45, , 3F
動態宣告? 把a改成const
11/09 20:45, 3F

11/09 20:48, , 4F
一樓 一言驚醒夢中人~ 應該是怕var被改掉
11/09 20:48, 4F

11/09 20:56, , 5F
但a加const 或c array加const 都沒用 只能動態了
11/09 20:56, 5F

11/09 21:02, , 6F
static int const a=2;
11/09 21:02, 6F

11/09 21:26, , 7F
C++11 的 constexpr 出現要解決的問題之一就是這個
11/09 21:26, 7F

11/09 21:29, , 8F
不過這裡由於 a 為非 static 成員所以不能加 constexpr
11/09 21:29, 8F

11/09 21:29, , 9F
真要加的話就要連 static 一起加上去才行
11/09 21:29, 9F

11/10 01:17, , 10F
#define a = 2;
11/10 01:17, 10F

11/10 01:17, , 11F
拿到外面去就是了= =
11/10 01:17, 11F

11/10 01:18, , 12F
要動態就...實作個method..
11/10 01:18, 12F

11/10 02:29, , 13F
沒想到版上也有人用 C++14 了,感動
11/10 02:29, 13F

11/10 03:37, , 14F
yoco 大的公司 codebase migrate 的真快
11/10 03:37, 14F
文章代碼(AID): #1KNs5XS- (C_and_CPP)