我的任务是实现 C++ 矢量模拟。我已经为 2 个案例编写了 operator[] 代码。
T myvector::operator[](size_t index) const {//case 1, for indexing const vector
return this->a[index];
}
T & myvector::operator[](size_t index) {//case 2, for indexing non-const vector and assigning values to its elements
return this->a[index];
}
如您所见,代码完全相等。对于这个例子(只有一个代码行)来说这不是问题,但是如果我需要为 const 和 non-const 情况实现一些运算符或方法并分别返回 const 或引用值,我该怎么办?每次我进行更改时只需复制粘贴所有代码?