如果我有Foo *foo,我可以说foo->bar().是否可以operator->()手动调用该功能?如果是这样,我将如何通过它bar()?
Foo foo相反,它会有所作为吗?
也许是这样的foo.operator->(bar)?
是的你可以.在重载时->,foo->bar()表达式被编译器解释为foo.operator->()->bar().这正是你可以"手动"调用它的方式:foo.operator->()->bar().
如果你的重载operator ->函数是"正确"实现的,即它返回一些也支持operator的东西,->那么使用"manual"语法并没有多大意义,因为它与"非手动"语法做同样的事情.
你需要"手动"语法的唯一情况是当你的重载实现operator ->返回不支持另一个应用程序的东西时->.int例如,一个值.
| 归档时间: |
|
| 查看次数: |
2076 次 |
| 最近记录: |