| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 560 人关注过本帖
标题:[求助]关于this指针
只看楼主 加入收藏
lerysal
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2007-9-11
收藏
 问题点数:0 回复次数:6 
[求助]关于this指针

#include<iostream.h>
class exam{
int x,y;
public:
exam( int a,int b ){x=a;y=b;}
void print( );
void swap( exam &);
};

void exam::print( )
{ cout<<"x="<<this->x<<endl;
cout<<"y="<<this->y<<endl;}

void exam::swap( exam &xy)
{ exam t;
t=*this; *this=xy; xy=t; }


void main( )
{
exam a(3,6),b(1,5);
a.print( );b.print( );
a.swap(b);
a.print( );b.print( );
b.swap(a);
a.print( );b.print( );
}
这段程序中void exam::swap( exam &xy) 中的&xy是什么意思呢?
当程序执行到a.swap(b);时候*this为什么会指向对象a呢?

搜索更多相关主题的帖子: 指针 
2007-11-06 15:05
Arcticanimal
Rank: 3Rank: 3
等 级:论坛游民
威 望:7
帖 子:341
专家分:20
注 册:2007-3-17
收藏
得分:0 
this指针始终指向当前正在被引用的对象, exam &amp; xy 即表示xy是传入参数的引用

try new catch
2007-11-06 15:21
lerysal
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2007-9-11
收藏
得分:0 

这个exam & xy中的xy跟上面那个私有函数xy没有关系吧?


2007-11-06 15:25
高温煎饺
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2007-11-2
收藏
得分:0 
这个XY是个整体,是一个对象变量,上面是2个属性,分别是X和Y,而且这个程序还得加个默认构造函数,不然这exam  t创建不了。那个*取指针所指的值,然后将XY赋值给这个值,从而使this指针指向XY.

follow your heart
2007-11-06 16:18
lerysal
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2007-9-11
收藏
得分:0 
哦 知道了 谢谢啊

2007-11-06 16:32
柒兲
Rank: 1
等 级:新手上路
威 望:1
帖 子:126
专家分:0
注 册:2007-9-26
收藏
得分:0 
void exam::swap( exam &xy)
{ exam t;
t=*this; *this=xy; xy=t; }
这里是什么意思啊` 我也搞不懂这个this 指针哦``
看了上面的解释` 还是一片茫然

[此贴子已经被作者于2007-11-6 21:08:02编辑过]


2007-11-06 21:06
Whnight
Rank: 1
等 级:新手上路
帖 子:120
专家分:0
注 册:2007-9-14
收藏
得分:0 
这是定义exam类的其中一个函数成员swap的函数体代码,
这个函数接受一个exam类引用对象,
在执行这个函数的过程中,把调用该函数的对象复制给函数体中的exam类对象t,
然后把接收到的exam类引用对象复制然后覆盖自己,
然后用t覆盖接收到的对象。

。。。。简单的说,
假如a和b都是exam类对象,那么如果a调用swap(&b),那么a变成b,b变成a。。。

不明白回去看书。。。
2007-11-07 12:58
快速回复:[求助]关于this指针
数据加载中...
 
   



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

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