为何GDI+中一个函数里有的参数是指针,有的则是引用

virtualcode 2010-12-16 10:39:56
例如:
Status MeasureString(
const WCHAR *string,
INT length,
const Font *font,
const RectF &layoutRect, 《--
RectF *boundingBox 《--
) const;


为何这样整?
...全文
62 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Hiiishe 2010-12-17
  • 打赏
  • 举报
回复
另一方面,是为了提示你这个参数是必须参数,不像其他有些参数你可以传NULL

至于出参,就不是他的责任范围了,你传NULL,他可以不返回,你穿其他类型强制转换过来,出不出现内存错误完全在于客户代码自己控制。
Hiiishe 2010-12-17
  • 打赏
  • 举报
回复
因为GID+矩形类有:RectF,Rect
坐标点类有:PointF,Point
分别是浮点型和整型

GDI+这里入参用引用是需要限制你只能传入浮点型的点或者矩形。至于原因不得而知,可能它内部就是使用浮点型进行相关运算,为了它内部计算的方便吧,不想在封装内部再做类型转换。
兔子-顾问 2010-12-17
  • 打赏
  • 举报
回复
指针可以修改指向的对象,引用不可以修改指向的对象,const的引用只能初始化,不能修改指向的对象和值。
当然我说的是常规做法,当然有办法让引用指向其他地方,那另当别论了。
xiaohuh421 2010-12-17
  • 打赏
  • 举报
回复
还不是该怎么传怎么传呐
指针就取地址传入。
引用就直接传入。

1,649

社区成员

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

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