c++ - C++中的两个运算符同时重载

标签 c++ operator-overloading

我想像数组一样表示我的对象。我的意思是程序员可以在他的代码中写

我的对象[3]=2

在后面(在 myobject 代码中)根本没有数组,它只是表示。

所以我需要同时重载[]=。 如何做到这一点?

谢谢你 抱歉我的英语不好。

最佳答案

operator[] 应该返回对您尝试修改的对象的引用。它可能是某种元对象,重载 operator= 以对主对象做任何您想做的事情。

编辑:由于 OP 澄清了问题, 有一种方法可以做到这一点。看这里:

#include <vector>
#include <iostream>

int & func(std::vector<int> & a)
{
    return a[3];
}

int main()
{
    std::vector<int> a;
    a.push_back(1);
    a.push_back(2);
    a.push_back(3);
    a.push_back(4);
    func(a) = 111;
    std::cout << a[3] << std::endl;
}

关于c++ - C++中的两个运算符同时重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7628569/

相关文章:

c++ - Git:C++ 格式不可知注释

c++ - 通过部分模板特化扩展命名空间 std

c++ - 将结构句柄从托管转换为非托管 C++/CLI

c++ - 调试问题:(

c++ - 从重载运算符删除中调用成员函数?

c++:运算符重载和错误处理

c++ - 通过基类调用时,实现的虚方法调用失败

c++ - 在c++中重载运算符+以添加两个数组

c++ - 使用运算符重载添加两个 vector

MATLAB:是否可以在 native 构造(单元、结构等)上重载运算符?