通过指针调用重载的操作符不成功,
类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);
[解决办法]
++
重载操作符也是重新实现它的功能而已!也类似与一般的成员函数的
[解决办法]
class A
{
public:
void foo()
{}
};
A a;
a.foo();//OK
A* p = &a;
p->foo();//OK
(*p).foo();//OK
p.foo();//NG