[问题] 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