我正在阅读"Effective C++"并尝试从规则3编译此示例:
class TextBlock
{
public:
const char& operator[](size_t position) const
{
return text[position];
}
char& operator[](size_t position) const
{
return const_cast<char&>(
static_cast<const TextBlock&>(*this)
[position]
);
}
private:
string text;
};
Run Code Online (Sandbox Code Playgroud)
这必须描述如何防止代码重复; 不写相同的代码来返回非const结果.我正在使用VS2012.但是我收到了一个错误.我听说重载的函数不能有不同的返回类型,但看到这个后我不知道该怎么想.