小编use*_*262的帖子

C++ - 转换丢失限定符错误

我收到以下错误:

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++

-4
推荐指数
1
解决办法
4205
查看次数

标签 统计

c++ ×1