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

经过指针调用重载的操作符不成功

2013-08-16 
通过指针调用重载的操作符不成功,类A的操作符 被重载A &operator (const Record &record)然后,有一

通过指针调用重载的操作符不成功,

类A的操作符 << 被重载

A &operator <<(const Record &record);

然后,有一个A的指针,调用<<操作符时编译不过,但是A的对象调用就可以成功。

A *p = new A;
p << record; // 编译不过
(*p) << record; // 编译通过

不解中,谁给个解决方案。
[解决办法]
p不是A的指针吗?如果有个成员fun(),应该是这么调用吧p->fun(),或者(*p).fun()
[解决办法]
要么写 
(*p) << record;
要么写
 p->operator<<(record);
[解决办法]

引用:
p不是A的指针吗?如果有个成员fun(),应该是这么调用吧p->fun(),或者(*p).fun()


++
重载操作符也是重新实现它的功能而已!也类似与一般的成员函数的

[解决办法]
class A
{
 public:  
   void foo()
   {}
  };

A a;
a.foo();//OK

A* p = &a;
p->foo();//OK
(*p).foo();//OK

p.foo();//NG

热点排行