给定一个重载“[]”运算符的简单类:
class A
{
public:
int operator[](int p_index)
{
return a[p_index];
}
private:
int a[5];
};
我想完成以下任务:
void main()
{
A Aobject;
Aobject[0] = 1; // Problem here
}
在这种情况下,如何重载赋值运算符“=”以与“[]”运算符一起使用?
最佳答案
您不要重载 =
运算符。你返回一个引用。
int& operator[](int p_index)
{
return a[p_index];
}
确保同时提供一个 const
版本:
const int& operator[](int p_index) const
{
return a[p_index];
}
关于c++ - 使用 operator[] 和 operator=,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2766821/