作者kkroy (大豬小豬肉一斤)
看板C_and_CPP
標題[問題] 在class的private中宣告矩陣 問題請教...
時間Thu Sep 17 16:05:28 2009
話說,我在一個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
1F:推 alohaiscool:會不會是因為 不支援 variable length array 09/17 16:10
2F:→ alohaiscool:要用VECTOR 09/17 16:10
3F:→ alohaiscool:我之前也是加了const 就過了.... 09/17 16:11
4F:→ alohaiscool:但是 有高手說 這部是正確的解法 09/17 16:11
5F:→ alohaiscool:你可以查一下 我之前的文章 09/17 16:12
6F:推 dendrobium:就像是不能在main寫 int N=10; int a[N]; 一樣 09/17 16:16
7F:→ kkroy:樓上,可是我在main這樣用很OK阿! 09/17 16:30
8F:→ james732:用的是什麼編譯程式? 09/17 16:34
9F:→ kkroy:VS 2008 09/17 16:34
10F:→ kkroy:不好意思den大...我剛在main試一次真的不行 09/17 16:39
11F:→ kkroy:不過我以前記得我在VC6好像可以,所以我直覺認為OK說... 09/17 16:39
12F:→ kkroy:所以除了加上const外沒有別的方法了嗎? 09/17 16:41
13F:→ adrianshum:不可能 ok. array dimension 不可以放 variable 09/17 16:42
14F:推 ledia:C 的話就 malloc 吧 09/17 17:05
15F:推 dendrobium:class A 09/17 20:32
16F:→ dendrobium:{ 09/17 20:32
17F:→ dendrobium: enum length { N = 10 }; 09/17 20:32
18F:→ dendrobium: int arr[N]; 09/17 20:32
19F:→ dendrobium:}; 09/17 20:33
20F:→ nickexe:C/C++的矩陣一定要明確的大小, 不然compiler怎麼幫你配置? 09/18 02:34
21F:→ nickexe:所以不論是用#define還是const還是enum都是可以的 09/18 02:35
22F:→ nickexe:因為這些都是編譯時期決定的 09/18 02:36
23F:→ nickexe:如果要動態大小的矩陣,就得用pointer自己分配或是vector 09/18 02:37