我收到以下错误:
Conversion loses qualifiers
Run Code Online (Sandbox Code Playgroud)
尝试在没有代码重复的情况下实现索引运算符时(我将显示代码段):
Point* BufferedList::indexTemp(size_t idx)
{
if (idx >= size) return nullptr;
return &arr[idx];
}
const Point* BufferedList::operator [](size_t idx) const
{
return indexTemp(idx);
}
Point* BufferedList::operator [](size_t idx)
{
return indexTemp(idx);
}
Run Code Online (Sandbox Code Playgroud)
但是,以下有效(这不使用辅助函数indexTemp,它是代码重复):
const Point* BufferedList::operator [](size_t idx) const
{
if (idx >= size) return nullptr;
return &arr[idx];
}
Point* BufferedList::operator [](size_t idx)
{
if (idx >= size) return nullptr;
return &arr[idx];
}
Run Code Online (Sandbox Code Playgroud)
我真的需要两个用于索引的函数(一个返回Point*,另一个返回const Point*)?
c++ ×1