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

作者: nikeasyanzi (nikeasyanzi)   2014-11-09 20:43:11
開發平台(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
有點白癡的問題 懇請板上先進指教! 感謝!
作者: bibo9901 (function(){})()   2014-11-09 20:44:00
陣列大小只能是常數
作者: kwpn (ITSST)   2014-11-09 20:44:00
加const
作者: GoIt (凍物。)   2014-11-09 20:45:00
動態宣告? 把a改成const
作者: nikeasyanzi (nikeasyanzi)   2014-11-09 20:48:00
一樓 一言驚醒夢中人~ 應該是怕var被改掉但a加const 或c array加const 都沒用 只能動態了
作者: dirkc (3781615)   2014-11-09 21:02:00
static int const a=2;
作者: LPH66 (-6.2598534e+18f)   2014-11-09 21:26:00
C++11 的 constexpr 出現要解決的問題之一就是這個不過這裡由於 a 為非 static 成員所以不能加 constexpr真要加的話就要連 static 一起加上去才行
作者: Push5F (帳號已賣)   2014-11-10 01:17:00
#define a = 2;拿到外面去就是了= =要動態就...實作個method..
作者: yoco (眠月)   2014-11-10 02:29:00
沒想到版上也有人用 C++14 了,感動
作者: carylorrk (carylorrk)   2014-11-10 03:37:00
yoco 大的公司 codebase migrate 的真快

Links booklink

Contact Us: admin [ a t ] ucptt.com