读书人

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

发布时间: 2013-08-16 14:29:57 作者: rapoo

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

类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

读书人网 >C++

热点推荐