作者nikeasyanzi (nikeasyanzi)
看板C_and_CPP
標題[問題] C++ 成員宣告問題
時間Sun Nov 9 20:43:11 2014
開發平台(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
→ bibo9901: 陣列大小只能是常數 11/09 20:44
推 kwpn: 加const 11/09 20:44
→ GoIt: 動態宣告? 把a改成const 11/09 20:45
→ nikeasyanzi: 一樓 一言驚醒夢中人~ 應該是怕var被改掉 11/09 20:48
→ nikeasyanzi: 但a加const 或c array加const 都沒用 只能動態了 11/09 20:56
推 dirkc: static int const a=2; 11/09 21:02
推 LPH66: C++11 的 constexpr 出現要解決的問題之一就是這個 11/09 21:26
→ LPH66: 不過這裡由於 a 為非 static 成員所以不能加 constexpr 11/09 21:29
→ LPH66: 真要加的話就要連 static 一起加上去才行 11/09 21:29
→ Push5F: #define a = 2; 11/10 01:17
→ Push5F: 拿到外面去就是了= = 11/10 01:17
→ Push5F: 要動態就...實作個method.. 11/10 01:18
推 yoco: 沒想到版上也有人用 C++14 了,感動 11/10 02:29
→ carylorrk: yoco 大的公司 codebase migrate 的真快 11/10 03:37