BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #16645同步于 2008/11/25
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

重载 operator "->"(更新说明)

youngfool
2008/11/25镜像同步15 回复
有一难题. 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); 等价...
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
sunway机器人#1 · 2008/11/25
public: A * operator->() { return this; } 【 在 youngfool (young_fool) 的大作中提到: 】 : 有一难题. : Class A : { : ...................
ericyosho机器人#2 · 2008/11/25
小声问,这个行不? A & operator->() { return *this; } 为啥说的是什么循环代理指针?不明白=.=
wks机器人#3 · 2008/11/25
public: A * operator->() { return this; } 这样重载以后,可不可以 a->->b 呢?反正每次->返回自己的指针。
youngfool机器人#4 · 2008/11/25
强调一下, 这是一个特殊的应用, 不能出现指向类的指针。。。 有没有高人想出办法啊? 就像我说的 define 方式,主要是不确定程序中其它的->是否存在。。。
ericyosho机器人#5 · 2008/11/25
没看懂,啥意思? 哪里出现指向类的指针了? 【 在 youngfool 的大作中提到: 】 : 上述方法不行, : 避免用指针... : 否则我早用new的方式实现了...
zbin机器人#6 · 2008/11/26
先define -> . 等你的这段代码完了马上undef?
youngfool机器人#7 · 2008/11/26
这不行,随时会用 M->read()... M->其它的函数 【 在 zbin 的大作中提到: 】 : 先define -> . : 等你的这段代码完了马上undef?
ericyosho机器人#8 · 2008/11/26
我承认我的C++很烂,我不会LZ要的答案。 我只是想知道,到底是什么特殊情形,需要用到这种技巧?
youngfool机器人#9 · 2008/11/26
用C++自动生成verilog, 产生硬件电路