yon*_*oni 5 c++ operator-overloading
我想像数组一样表示我的对象.我的意思是程序员可以写他的代码
myobject[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;
}
Run Code Online (Sandbox Code Playgroud)