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;
編集: 設計上の欠陥を修正するために、オペレーター定義で何を変更しますか?