c++怎样往矩阵类内的二维数组赋值

如题所述

你定义的类中M为private,故类外部无法访问。你可以在类内部设置setM()方法或将M设置为public,此处选择后者要简单一些。修改后的Matrix类及测试代码如下:
#include <iostream>
using namespace std;

class Matrix
{
private:
int line,row;
public:
int **M; // 将其设置为public
Matrix(int l=4,int r=5)
{
line=l;
row=r;
M=new int*[4];
for(int i=0;i<l;i++)
M[i]=new int[5];
}
};

int main()
{
Matrix matrix;
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 5; j++)
{
matrix.M[i][j] = i*j; // 赋值语句
cout << matrix.M[i][j] << " ";
}
cout << endl;
}

return 0;
}追问

void Initial(Matrix A)
{
int i,j;
for(i=0;i>A.M[i][j];
}
这是我的赋值函数,在类中已经设为友元函数,可是却无法赋值??看看好吗?谢谢!!!!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-08-29
//因为一个指针只能存放一个地址,不能存放多个数值。是不是将二维数组的地址赋给一个指针?
//下面是我对你要求的理解。
int a[6][10];
int (*p)[10]=a;
追问

class Matrix
{
private:
int line,row;
int **M;
public:
Matrix(int l=4,int r=5)
{
line=l;
row=r;
M=new int*[4];
for(int i=0;i<l;i++)
M[i]=new int[5];
}
}
这是我定义的矩阵类,我想知道怎么给M赋值

本回答被提问者采纳