c ++矩阵类动态数组参数

时间:2017-11-02 01:29:24

标签: c++ arrays class matrix

我想实现一个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:我不想使用矢量或智能指针。另外,如果您对我的代码有关功能,可读性的任何反馈,如果您知道更聪明的方法,请告诉我。

0 个答案:

没有答案