例如:
Status MeasureString(         
    const WCHAR *string,
    INT length,
    const Font *font,
    const RectF &layoutRect,  《--
    RectF *boundingBox   《--
) const;
为何这样整?

解决方案 »

  1.   

    指针可以修改指向的对象,引用不可以修改指向的对象,const的引用只能初始化,不能修改指向的对象和值。
    当然我说的是常规做法,当然有办法让引用指向其他地方,那另当别论了。
      

  2.   

    因为GID+矩形类有:RectF,Rect
    坐标点类有:PointF,Point
    分别是浮点型和整型GDI+这里入参用引用是需要限制你只能传入浮点型的点或者矩形。至于原因不得而知,可能它内部就是使用浮点型进行相关运算,为了它内部计算的方便吧,不想在封装内部再做类型转换。
      

  3.   

    另一方面,是为了提示你这个参数是必须参数,不像其他有些参数你可以传NULL至于出参,就不是他的责任范围了,你传NULL,他可以不返回,你穿其他类型强制转换过来,出不出现内存错误完全在于客户代码自己控制。