读书人

怎么调用类中的成员以及怎么定义动态

发布时间: 2012-02-04 15:43:09 作者: rapoo

如何调用类中的成员,以及如何定义动态的二位数组
这个是我定义的一个类
我想要调用r_iRiverWidth,可是怎么总出错呢
提示:
[C++ Error] fish.cpp(30): E2451 Undefined symbol 'r_iRiverWidth '
[C++ Error] fish.cpp(31): E2451 Undefined symbol 'r_iRiverLength '
[C++ Error] fish.cpp(51): E2451 Undefined symbol 'river '

class Criver
{
public:
int r_iRiverWidth; //河流二位数组的宽
int r_iRiverLength; //河流二位数组的长
int river[r_iRiverWidth][r_iRiverLength];

见笑了啊,刚编程,出现很弱质的问题。
谢谢大家帮忙!!!!!

};

[解决办法]
Criver *criver = new Criver();
criver-> r_iRiverWidth
[解决办法]
C++动态分配二维数组有点麻烦,以下这个例子供你参考
class Criver
{
public:
Criver(int iWidth, int iLength){
r_iRiverWidth = iWidth;
r_iRiverLength = iLength;
river = new int*[r_iRiverLength];
for (int i=0; i <r_iRiverLength; i++)
*(river+i) = new int[r_iRiverWidth];
}
~Criver()
{
delete[] river;
}
private:
int r_iRiverWidth; //河流二位数组的宽
int r_iRiverLength; //河流二位数组的长
int **river;
};
[解决办法]
你的class Criver无需定义成二维指针数组。
class Criver{
int r_iRiverWidth; //河流二位数组的宽
int r_iRiverLength; //河流二位数组的长
int *river;
public:
Criver(int w,int l):r_iRiverWidth(w),r_iRiverLenght(l),river(0){
river = new int[w*l];}
~Criver(){if(river)delete []river;}
int& Unit(int col,int row){return river[col*r_iRiverWidth+row];}
...};

to:gyj_china(透明),你的程序有错误,有严重的内存管理问题。

读书人网 >C++ Builder

热点推荐