主题:高手们,const RECT&rect结构体参数的问题
asfno1
[专家分:40] 发布于 2009-11-05 00:31:00
为什么函数中const RECT&rect结构体参数可以用CRect(l,t,r,b)对象来赋值呢
如果这样行的通,那别的函数中机构体参数是否可以用类的构造函数生成的临时对象来赋值呢?
回复列表 (共2个回复)
沙发
WindColor [专家分:10] 发布于 2009-11-05 22:22:00
兄弟我也用MFC,参与讨论,不计对错!
在用CRect(...)时就构造了CRect临时对象, 而CRect重载了LPCRECT运算符, 就是const RECT指针,你事实上引用的就是这个临时对象LPCRECT运算符。
板凳
asfno1 [专家分:40] 发布于 2009-11-10 01:55:00
楼上的朋友你好,我也不知道MSDN中是否有CRect类的构造函数CRect(l,t,r,b)的源代码。
你说的重载了LPCRECT是有可能的,并且我也自己测试过如下代码
RECT rc=CRect(0,0,100,100);成立的,这个代码可以给结构体rc赋值。
但是我的想法是CRect类重载的“=”运算符有给结构体赋值的功能,所以构造函数CRect(l,t,r,b)也运用了这个重载的“=”运算符,你说呢?
我来回复