年纪大了,学c++,有点吃劲,帮忙解释

xlshen 2006-05-24 02:02:08
引用是标识对象的一种机制,它表达一个对象引用。

这句话啥意思,引用到底是什么,这个机制有什么好处?
...全文
223 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
rollor_phoe 2006-05-25
  • 打赏
  • 举报
回复
如:
int a=20;
int &b=a;
这时表示,b为引用,也是a的别名,同时指向阳花分配给a的内存地址,程序中对b的操作,就等于对a在操作。
如:b=100;
cout<<a<<endl;
cout<<b<<endl;
输出a会等于100。b也等于100。
然后再来:a=1000;
cout<<a<<endl;
cout<<b<<endl;
输出a为1000,b也为1000。
rollor_phoe 2006-05-25
  • 打赏
  • 举报
回复
作为取地址符时,表示b已定义,而且前面也不会有类型定义符。
作为引用时,表示b还未被定义,是个未定义标识符,定义时前面要有类型定义符,而且后面会跟上赋值符然后是被引用的对象。
xlshen 2006-05-25
  • 打赏
  • 举报
回复
再请教:

A &b


这不是表示对象的地址吗?为什么在这里又作为引用呢?
0黄瓜0 2006-05-25
  • 打赏
  • 举报
回复
void test(A &b)

还是
void test(A& b)

二者等价
xlshen 2006-05-25
  • 打赏
  • 举报
回复
请教A_B_C_ABC(黄瓜)

void test(A &b)

还是
void test(A& b)
xlshen 2006-05-25
  • 打赏
  • 举报
回复
谢谢,各位的耐心解释,明白了.
beepbug 2006-05-24
  • 打赏
  • 举报
回复
理论上说,对象是一个实体,这没错。
可多数OOP语言在实现上,都是在堆上生成的。
因此,尽管对象是实实在在存在的,但是我们看不见,摸不着。
要访问对象,必须通过引用。
说引用是对象的标识机制,好像不太妥当。
或许说引用是对象的访问机制,比较妥当。
我年纪也大了,猩猩惜猩猩,胡说这一些,供楼主参考。
rollor_phoe 2006-05-24
  • 打赏
  • 举报
回复
是变量的别名,就像你的小名一样,形象吧,同样代表一个变量,声明一个引用时,它不重新分配内存,而只是指向它所代表的变量而已。用引用和用变量名是一样的效果。
liusdream 2006-05-24
  • 打赏
  • 举报
回复
类似于指针,象在JAVA中就没的指针了,就是引用!
不过在C++中一般都是用来传参的!可以减少对指针的使用!
HxIn_it 2006-05-24
  • 打赏
  • 举报
回复
主要的用途还是用来改变参数的值。
MarionTY 2006-05-24
  • 打赏
  • 举报
回复
相当于指针常量吧~
bjskyhorse 2006-05-24
  • 打赏
  • 举报
回复
就是个别名,指针提供了很强的功能但是也破坏了黑盒特性,引用则相对好一些。
WecanHuang 2006-05-24
  • 打赏
  • 举报
回复
别称
0黄瓜0 2006-05-24
  • 打赏
  • 举报
回复
函数传参用引用很多时候是考虑效率,不用复制一个大的对象。
0黄瓜0 2006-05-24
  • 打赏
  • 举报
回复
除了记信引用是一个变量的别名,另外记住引用不可以更改,一会引用b,一会儿引用c是不可能的。
int a = 9;
int c=10;
int& b = a;
b=c;//等效于a=10,而不是b变成c的引用。

引用最重要的运用是函数传参。
class A{/*...*/};

void test(A &b)
{/*...函数内部对b的一切操作就是对main()中a的操作。如果不用引用b只是main()中a的副本,对b的操作不影响main()中的a*/
}
int main()
{
A a;
test(a);
return 0;
}
lovecreak 2006-05-24
  • 打赏
  • 举报
回复
就像人的别名
templarzq 2006-05-24
  • 打赏
  • 举报
回复
作为函数参数传递不用初始化。如果传指针的话,指针不能为空。
还有别的好处。具体可见c++ primer
limaolinghu 2006-05-24
  • 打赏
  • 举报
回复
int a = 9;
int& b = a;
b是a的一个引用,对b做修改就是对a做修改,对a做修改就是对b做修改。
在函数中,传引用是个不错的选择。
wuqingabc 2006-05-24
  • 打赏
  • 举报
回复
类似于指针

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧