给出一个简单的类,重载 '[]' 操作员工作:与运营商[]和operator =
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
}
我怎么能过载在这种情况下,赋值'='操作符与'[]'操作符一起使用?
+1。另外,你可能想要在const上重载:'int operator [](int p_index)const' – 2010-05-04 15:53:49
在const版本中,你可以返回一个普通的'int'而不是'const int&'。 – 2010-05-04 16:08:19
@David,如果你想接受它的地址,这可能不是一个好主意。 'foo = &a[0];'被'a'为常量'A'。 – 2010-05-04 16:37:27