| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 458 人关注过本帖
标题:小小菜鸟对"&"用途的问题
只看楼主 加入收藏
梧桐雨
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2009-7-27
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
小小菜鸟对"&"用途的问题
小弟正在自学c++,对"&"有些不明白。
"&"的用途不就是:(1)取地址,(2)按位与 ,(3)&&是逻辑中的与
但是在有些地方我就不清楚了。
例如:
//--------------------------------------------------------------------------------------------------------------------------------------------------------------------
class Array
{
public:
 Array(int n);//实现构造函数,为类Array的对象分配一个包含n个数组元素的整形数组。
 ~Array();
 int & operator [](int n);//重载运算符[],功能:如a为Array型,则a[n]=y,实现对a的第n个元素赋值。(此处的&的作用就不明白了)
 Array & operator = (Array &obj);//重载运算符=,实现Array型的对象的相互赋值。(此处出现两个&,第一个我想作用和上一行的作用一样吧;第二处的作用我也不知道//丢人了啊。。)
 int operator == (Array &obj);//重载运算符==;实现对Array类型的对象是否相等的判断。(此处两个问题:第一,重载[]时不也是int型嘛,为什么这里没有&;第二还是对&作用的问题。)
private:
int size;
int *ptr;
};
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
希望可以得到各位高手的解答。谢谢。。。
搜索更多相关主题的帖子: 小菜问题 
2009-08-13 20:15
沼泽
Rank: 4
等 级:业余侠客
威 望:8
帖 子:291
专家分:228
注 册:2008-9-15
收藏
得分:10 
&在这里的作用都是引用,就是变量的别名,至于你说的有的地方用&有的有不用,你可以这样理解,
用了&的其实是引用一个已经存在的变量,或者是返回这个变量的引用,没有用&是因为操作符返回的是
比较后的结果,是一个临时的值
2009-08-13 22:47
xufen340
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:166
专家分:1351
注 册:2009-8-7
收藏
得分:10 
引用是变象的别名,改变引用就是改变量的值。
1.int & operator [](int n);//
这里是操作符重载,这里的操作不是a[n]=y,而只是a[n],在这里你可以看作一个调用[]函数返回一个引用,它没有附值。所以这样就很好理解了,a[n]这个函数返回了一个引用,
这个引用是ptr指向的一个整形变量的别名,如a[1]返回的就是ptr[1].
2.Array & operator = (Array &obj);//
同样这里array&,第一个是要附值的对象引用。为什么要这样,如果只有array1=array2是不需要的,什么时候需要,array1=array2=array3,这个执行顺序可能你不明白,其是我这样一变
你就知道了array1=(array2=array3),array1=函数调用参数array2=array3的返回值,所以第一个array&和第二个是对应的,
array1=(array2=array3)可以理解为Array & operator =(Array & operator = (Array &obj))。
3.int operator == (Array &obj);//
==是判断通过返回值确定条件满足,它不会附值的,如果返回个引用,比如array1==array2返回引用就可以附值了,如(array1==array2)=4;这好像你并没有这个要求,所以返回int。
操作符重载可以随便写,但是最好要符合它们原有操作模式,否则你不会出错,但是调用你程序的人可不一定知道。
2009-08-13 22:55
梧桐雨
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2009-7-27
收藏
得分:0 
明白了。谢谢啊
以后有不明白的还希望各位不吝赐教
2009-08-15 13:00
快速回复:小小菜鸟对"&"用途的问题
数据加载中...
 
   



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

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