【发布时间】:2011-08-09 18:26:12
【问题描述】:
可能重复:
How do I remove code duplication between similar const and non-const member functions?
我的任务是实现 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 或引用值,我该怎么办?每次我在其中进行更改时,只需复制粘贴所有代码即可?
【问题讨论】:
-
为什么在 const 版本中按值返回。你可以返回一个常量引用。
标签: c++ operators duplication