我想像数组一样表示我的对象。我的意思是程序员可以在他的代码中写
我的对象[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/