我一直在思考这个问题,并没有想出任何有用的东西。我有由 2 个类表示的矩阵:
class CMatrix {
public:
CMatrixRow * matrix;
int height, width;
CMatrix(const int &height, const int &width);
CMatrix(const CMatrix &other);
~CMatrix();
CMatrixRow operator [] (const int &index) const;
...
}
class CMatrixRow {
public:
int width;
CMatrixRow(const int &width);
CMatrixRow(const CMatrixRow &other);
~CMatrixRow();
double operator [] (const int index) const;
void operator =(const CMatrixRow &other);
private:
double * row;
};
其中 CMatrix 是矩阵行 (CMatrixRow) 的容器。当有人试图在其边界之外访问矩阵时,或者换句话说,使用的索引之一大于矩阵的大小时,我需要抛出异常。问题是,我需要以某种方式将第一个索引传递给方法
double operator [] (const int index) const;
因此它可以抛出有关两个索引的信息的异常,无论其中哪一个是错误的。我也想让它尽可能简单。你能想到什么吗?