一个关于指针指向对象的问题!

wfygowxf 2009-02-27 09:44:00
void FillRect( LPCRECT lpRect, CBrush* pBrush );
函数原型
FillRect(&CRect(m_ptOrigin,point),&brush);
FillRect(CRect(m_ptOrigin,point),&brush);//为什么这里的第一个参数是对象也可以呢?
我调试了这两种写法都正确。
...全文
46 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangyoucheng22 2009-02-28
  • 打赏
  • 举报
回复
CRect类中定义了operator LPRECT(),其中LPRECT是转换后的类型,即指向CRect的指针
在第二个函数中,第一参数自动由对象转换成了指针,所以两种写法都正确
oyljerry 2009-02-27
  • 打赏
  • 举报
回复
CRect中定义了操作符operator LPRECT(),所以会帮你转换
sys0008 2009-02-27
  • 打赏
  • 举报
回复
因为CRect类实现了LPCRECT的操作符重载。

VS2005可以参考.../vc/atlmfc/include/atltypes.h中的源码

15,978

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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