0

C++ プログラムでは、表示されていないマトリックス実装のセッターおよびゲッターとして使用される 2 つの演算子見出しがあります。

double* Matrix::operator[](unsigned int row) const throw (MatrixException);
double* Matrix::operator[](unsigned int row) throw (MatrixException);

前述の演算子の実装についてこれ以上知ることなく、上記の演算子がどのように定義されているかを見るだけで、これらのメソッドが両方とも実装されている場合、行列プログラムの設計上の欠陥は何であるかがわかります。

[] 演算子がどのように機能するかについての明確化: 行列は次のように設定されます。

Matrix *a = new Matrix(1,2); //matrix with one row and two columns
a[0][0] = 3.0; 
a[0][1] = 2.3;

//to access a matrix value
double* b = a[0][1];
delete a;

編集: 設計上の欠陥を修正するために、オペレーター定義で何を変更しますか?

4

2 に答える 2