作者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