送分 问个很坑爹的问题
比如一个类重载了[]操作符
class A a;A[1]=10;
如果我只有一个指针 这个格式怎么写?
A *a; a->[1]=10????
[解决办法]
那的看你[]函数的返回值是什么类型,多数情况应该不能这样用
[解决办法]
指针的话,如果你写成a[1]或者其他的,它是不会调用到你的[]重载,会导致胃定义,只能用普通的对象调用的operator重载函数
[解决办法]
class C{
public:
int operator[](int i){
MessageBox(0,0,(LPCSTR)"[]",0);
return 0;
}
};
调用:
C c;
c[1];
C* cp=&c;
cp->operator[](1);
[解决办法]
建议
(*a)[1] = 10;
[解决办法]
+1我一般也这么用
[解决办法]
++