返回信息流有一难题.
Class A
{
inline A(){...} //A的构造函数inline(也是为了避免指针一类的)
read(int addr){...}
}
Class B
{
A M;
M.read(5); //没有问题
M->read(5); //怎么能让这句话与“M.read(5);”完全等价?
}
补充:
1)不能用 A *M = new A;
2)#define -> . 可以,但是可能把别的->也换了...
3)重载->operator:
return *this , this 都涉及指针问题, 不行。。。
4)最好的办法能实现
M->read(5);
M.read(5);
等价...
这是一条镜像帖。来源:北邮人论坛 / cpp / #16645同步于 2008/11/25
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
重载 operator "->"(更新说明)
youngfool
2008/11/25镜像同步15 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
public:
A * operator->() {
return this;
}
【 在 youngfool (young_fool) 的大作中提到: 】
: 有一难题.
: Class A
: {
: ...................
强调一下, 这是一个特殊的应用,
不能出现指向类的指针。。。
有没有高人想出办法啊?
就像我说的 define 方式,主要是不确定程序中其它的->是否存在。。。
没看懂,啥意思?
哪里出现指向类的指针了?
【 在 youngfool 的大作中提到: 】
: 上述方法不行,
: 避免用指针...
: 否则我早用new的方式实现了...
这不行,随时会用
M->read()...
M->其它的函数
【 在 zbin 的大作中提到: 】
: 先define -> .
: 等你的这段代码完了马上undef?