0

行列を取得するプログラムを作成しています。関数はmatrixname .loadMatrix() を呼び出し、そこから操作します。ただし、コンストラクターにつまずいてしまいます。私は持っている:

コンストラクタ:

Matrix Matrix(int row, int col){

int v;

for(int i=0; i<row; i++){
    for(int j=0; j<col; j++){
        fin >>v;
        M.setElement(i, j, v);
    }
}
}

関数 loadMatrix:

Matrix Test::loadMatrix(std::string filename){
std::ifstream fin(filename);

int r;
int c;

fin >>r;
fin >>c;

return Matrix M(r, c);

}

私の質問は、コンストラクター内ですべてのfin >>を実行する必要があるかどうかです。それともこれでうまくいきますか?コンピューターが動作していないときにタブレットで作業しているため、コンパイルして試行錯誤を行うことができません。

4

2 に答える 2

0

fin は関数 loadMatrix 内でローカルです。Matrix コンストラクターでは未定義です。

于 2013-09-18T16:38:22.713 に答える