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

2024年12月04日 18:54
有2个网友回答
网友(1):

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

网友(2):

//因为一个指针只能存放一个地址,不能存放多个数值。是不是将二维数组的地址赋给一个指针?
//下面是我对你要求的理解。
int a[6][10];
int (*p)[10]=a;