注册 登录
编程论坛 C++教室

怎样在类里面定义一个不定长度的数组?

I_swear 发布于 2007-05-14 09:15, 6778 次点击

#include <iostream>
using namespace std;
class WWW
{public:
WWW(int a,int b):x(a),y(b){}
private:
const int x,y; // x y是静态的,可变的,怎样才能实现呢?
int m[x][y];
};

9 回复
#2
aipb20072007-05-14 12:05
动态数组!
#3
I_swear2007-05-14 16:54

谢谢个位拉,我是个新手啊,55555555,我们书都快学完了,都没学过动态的,所以不知道还能用这种方法,我会去学的了!~

#4
kisscjy2007-05-14 17:07

动态数组~~~

int n;
in* p=new int[n];

#5
PcrazyC2007-05-14 17:36
本人觉得实现动态数组,还是用vector向量的好

[此贴子已经被作者于2007-5-15 22:43:44编辑过]


#6
gao_gao862007-05-15 19:42
回复:(PcrazyC)本人觉得不行,实现动态数组,用vecto...
我也觉得用vector比较好!
#7
raulxxyuer2007-05-15 20:59
vector怎么用呢?
#8
未入流小菜鸟2007-05-15 21:38
//自己动态定义N维数组是完全可以的,虽然效率未必高。以二维数组为例,修改lz的代码.N维都可以类推。
#include <iostream>
using namespace std;
class WWW
{
public:
WWW(int a,int b):x(a),y(b)
{
m = new int *[x]; //先定义一个指针数组,再用一个for循环来初始化这个指针数组.
for(int i=0;i++;i<x)
{
m[i] = new int[y]; //指针数组里每个元素分别指向一个数组,以后就可m[i][j]这么使用了。
}
}
private:
const int x,y;
int **m; //二维数组,需要一个双指针.三维则要三指针,N维要N指针.
};
//当然,用现成的容器类也是可以的。
#9
linaiyu2007-05-15 23:36
const int x,y;
const数据成员好像不能被修改吧。
楼上x(a),y(b)初始化有点问题。
1