小编SAR*_*SAR的帖子

重载运算符[]以接受范围

我想重载operator []来接受2 int,以便用户可以指定如下范围的索引:

MyClass[1:5]
Run Code Online (Sandbox Code Playgroud)

我尝试了这个:

void operator[](const int, const int);
Run Code Online (Sandbox Code Playgroud)

希望我可以用逗号使用它:

MyClass[1,5]
Run Code Online (Sandbox Code Playgroud)

但出现编译器错误:

too many parameters for this operator function
Run Code Online (Sandbox Code Playgroud)

有没有办法可以实现这种行为?

谢谢

编辑:我希望操作员会做这样的事情:

struct MyClass
{
    vector<std::string> data;
    void operator[] (const int start, const int end)
    {
        for(int index = start; index <= end; index++)
        {
            cout << data[index] << '\n';
        }
    }
};
Run Code Online (Sandbox Code Playgroud)

c++ operator-overloading

1
推荐指数
1
解决办法
59
查看次数

标签 统计

c++ ×1

operator-overloading ×1