| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1404 人关注过本帖
标题:CPoint类的问题
只看楼主 加入收藏
cumtzdhlx
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2007-7-8
收藏
 问题点数:0 回复次数:4 
CPoint类的问题
我今天重新看孙老师视频的时候,看到他讲CPoint的时候,定义了一个对象CPoint m_ptOrigin
然后他直接给它初始化m_ptOrigin=0;我去看了看MSDN,但里面没有=操作符重载,为什么可以这样使用呢?
小弟C++学的不是很好,望大家指教.
搜索更多相关主题的帖子: CPoint ptOrigin 视频 定义 
2007-07-20 11:14
cumtzdhlx
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2007-7-8
收藏
得分:0 

大家来帮帮忙哦....

2007-07-20 11:44
cumtzdhlx
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2007-7-8
收藏
得分:0 
哭了,难道版主都不在吗......
2007-07-20 16:49
yorkyogurt
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2006-3-27
收藏
得分:0 

CPoint point,ponit2,point3;
point=2; /*point.x=2,point.y=2*/
point2=3; /*point2.x=3,point2.y=3*/
point3=point+point3; /*point3.x=5,point.y=5*/
是因为定义point,ponit2,point3为CPoint类而已.当然可以这样使用.


2007-08-12 21:46
Lenying
Rank: 1
等 级:禁止访问
帖 子:16
专家分:5
注 册:2006-11-25
收藏
得分:0 

  楼上说的不对,难道是它的类就可以这样用吗?不是的。
  在MSDN中可以找到答案
  MSDN中描述CPoint的构造函数如下:
  CPoint( DWORD dwPoint );
  dwPoint:
  Sets the x member to the low-order word of dwPoint and the y member to the high-order word of dwPoint.
  这句话是说,如果给构造函数一个DWORD类型(32位无符号整型)的值,那么CPoint.x就被设置为dwPoint的低字节序,那么CPoint.y就被设置为dwPoint的高字节序,当然如果是个0,那么他的高低字节序就都是0,因此用m_ptOrigin=0,就是m_ptOrigin.x=0,m_ptOrigin.y=0了。
  这里涉及到一个构造函数的问题,有人问m_ptOrigin=0也不是调用构造函数的形式啊?答案是这种调用存在两种情况:

  1.初始化时,而且构造函数只有一个参数时。

  例如:
  class a
  {
  int x;
  a(int i){x=i};
   ......
  }
  那么a a1=10就等于a a1(10).显然,这里说的m_ptOrigin=0不是在对象初始化的时候。那么就是下一种情况。

  2.在另一个类中定义该类的变量的时候,且在定义类中的构造函数中使用。

  这里说的m_ptOrigin变量被定义在了View类中,那么在View类的构造函数中m_ptOrigin=0,这就调用的CPoint的构造函数,进而使m_ptOrigin.x=0,m_ptOrigin.y=0。


蓝鹰----Lenying
2007-08-14 10:26
快速回复:CPoint类的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014117 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved