看板 C_and_CPP 關於我們 聯絡資訊
話說,我在一個header file中宣告一個class,舉例如下: const int N = 10; class ABC{ private: int arr[N]; ........ } 這樣子很OK,就是宣告一個class ABC 內含有arr[10]的private成員 但是,為什麼我把const拿掉之後, compiler不給我過? 加上extern也一樣。 望高手指點! 謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.144.18
alohaiscool:會不會是因為 不支援 variable length array 09/17 16:10
alohaiscool:要用VECTOR 09/17 16:10
alohaiscool:我之前也是加了const 就過了.... 09/17 16:11
alohaiscool:但是 有高手說 這部是正確的解法 09/17 16:11
alohaiscool:你可以查一下 我之前的文章 09/17 16:12
dendrobium:就像是不能在main寫 int N=10; int a[N]; 一樣 09/17 16:16
kkroy:樓上,可是我在main這樣用很OK阿! 09/17 16:30
james732:用的是什麼編譯程式? 09/17 16:34
kkroy:VS 2008 09/17 16:34
kkroy:不好意思den大...我剛在main試一次真的不行 09/17 16:39
kkroy:不過我以前記得我在VC6好像可以,所以我直覺認為OK說... 09/17 16:39
kkroy:所以除了加上const外沒有別的方法了嗎? 09/17 16:41
adrianshum:不可能 ok. array dimension 不可以放 variable 09/17 16:42
ledia:C 的話就 malloc 吧 09/17 17:05
dendrobium:class A 09/17 20:32
dendrobium:{ 09/17 20:32
dendrobium: enum length { N = 10 }; 09/17 20:32
dendrobium: int arr[N]; 09/17 20:32
dendrobium:}; 09/17 20:33
nickexe:C/C++的矩陣一定要明確的大小, 不然compiler怎麼幫你配置? 09/18 02:34
nickexe:所以不論是用#define還是const還是enum都是可以的 09/18 02:35
nickexe:因為這些都是編譯時期決定的 09/18 02:36
nickexe:如果要動態大小的矩陣,就得用pointer自己分配或是vector 09/18 02:37