两个运算符同时在c ++中重载

yon*_*oni 5 c++ operator-overloading

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

myobject[3]=2

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

所以,我需要重载[]=同步.如何才能做到这一点?

谢谢,抱歉我的英语不好.

Gri*_*wes 7

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;
}
Run Code Online (Sandbox Code Playgroud)