关于smart point?

darkhawk 2003-03-28 09:26:07
通常的所谓灵巧指针只是一个重载了->符号的类,但是在重载函数中通常返回的只是一个类的指针,例如:
class SP
{
...
MyClass* operator()
{
返回一个MyClass类实例的指针.
}

}

为什么通过SP->fun()就能操纵MyClass类的函数了呢,为什么不是(SP->)->fun()呢,或者是*(SP->).fun()呢,因为(sp->)代表一个指针啊
...全文
72 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
chen123456 2003-03-28
  • 打赏
  • 举报
回复
建议你到这里看一下
http://www.csdn.net/Develop/article/17/17530.shtm
Gallen 2003-03-28
  • 打赏
  • 举报
回复
"(sp->)->fun();"
这样是不行的,下面的表达是合法的:
(sp.operator->())->fun();
但在C++中规定,当重载->时
“(sp.operator->())->fun();” = sp->fun();
那么我们为什么不用一个简单一点的表达式呢。

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧