首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

送分 问个很坑爹的有关问题

2013-10-29 
送分 问个很坑爹的问题比如一个类重载了[]操作符class A aA[1]10如果我只有一个指针 这个格式怎么写?A

送分 问个很坑爹的问题
比如一个类重载了[]操作符
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;

[解决办法]
引用:
建议
(*a)[1] = 10;

+1我一般也这么用
[解决办法]
引用:

class C{
public:
int operator[](int i){
   MessageBox(0,0,(LPCSTR)"[]",0);
   return 0;
}
};

调用:
C c;
c[1];
C* cp=&c;
cp->operator[](1);


引用:

class C{
public:
int operator[](int i){
   MessageBox(0,0,(LPCSTR)"[]",0);
   return 0;
}
};

调用:
C c;
c[1];
C* cp=&c;
cp->operator[](1);


++

热点排行