我想实现一个Matrix类。我编写了一个指针数组。当我使用for循环将数组的每个元素的值设置为0时,它工作正常(显然)。但是当我尝试声明我的类(setvalues)的函数来获取1D数组的值并将它们存储在矩阵中时,参数存在问题。我不知道如何声明一个以动态数组作为参数的函数。
#include<iostream>
using namespace std;
class Matrix{
int rows, columns, numE;
double *mData=new double[numE];
public:
double** matrix;
Matrix(int,int);
setmatrix();
setvalues(double);
};
Matrix::Matrix(int x, int y){
rows=y;
columns=x;
matrix=new double*[columns];
for(int i = 0; i < columns; ++i){
matrix[i]=new double[rows];
}
}
Matrix::setmatrix(){
for(int i=0;i<rows;i++){
for(int j=0;j<columns;j++){
matrix[i][j]=0.0;
cout<<matrix[i][j]<<endl;
}
}
}
Matrix::setvalues(double mData[]){
for(int i=0;i<rows;i++){
for(int j=0;j<columns;j++){
matrix[i][j]=mData[i];
}
}
}
int main(){
Matrix AA(2,2);
AA.setmatrix();
//AA.setvalues();
for(int i=0;i<2;i++){
for(int j=0;j<2;j++){
cout<<AA.matrix[i][j] << endl;
}
}
cout<< AA.matrix << endl;
delete [] AA.matrix;
return 0;
}
PS:我不想使用矢量或智能指针。另外,如果您对我的代码有关功能,可读性的任何反馈,如果您知道更聪明的方法,请告诉我。