社区讨论

不会C++入门级语法了怎么办

学术版参与者 8已保存回复 17

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
17 条
当前快照
1 份
快照标识符
@mhjoigq2
此快照首次捕获于
2025/11/04 05:55
4 个月前
此快照最后确认于
2025/11/04 06:34
4 个月前
查看原帖
实现了一个形如这样的重载运算符:
CPP
class XXX{
    public:
        vector<int> a;
        int operator[](int id)
        {
            return a[id];
        }
}x;
但是有一个问题,就是我不能执行形如:
x[i]=(......);
的语句,因为赋值号必须有可修改的左值。
我的解决方法是把 int operator[] 改成 int* operator[];并且把 return a[id]; 改成 return a.begin()+id;
但是这个方法失败了,它告诉我这两个的类型不匹配。
该怎么解决?

回复

17 条回复,欢迎继续交流。

正在加载回复...