注册 登录
编程论坛 C++教室

新手请教引用符号&的使用

evilsharp 发布于 2010-07-04 16:50, 819 次点击
举个例子c++ primer 12.5友元中
1、书上写
class Screen{
friend Window_Mgr&
    Window_Mgr::relocate(Window_Mgr::index,Window::index,Screen&;
//……
}
请问为什么一定要用 Window_Mgre&,这么写不行吗?
class Screen{
friend Window_Mgr
    Window_Mgr::relocate(Window_Mgr::index,Window::index,Screen&;
//……
}
这里有什么特殊意义吗?友元申明为什么要声明类的引用?


2、还有像这种声明
extern std::ostream& storeOn(std:ostream &,Screen &)
为什么要声明引用,有什么实际意义吗?

3、最后函数形参的声明
void s(iostream& a){……} 等价于 void s(iostream &a){……}吗?

感觉C++书写没有规范的格式
7 回复
#2
evilsharp2010-07-04 16:57
前两个明白了,请高手帮我确认第三个问题吧
#3
pbreak2010-07-04 17:02
下面是我的理解:
&引用可作为一个变量的一个别名。
对别名进行的改变,从而改变了原变量。
这里采用引用时为了在函数体中对实参做的改变能对函数体外传入的变量的改变。
#4
最近不在2010-07-04 19:07
*或&紧贴数据类型,或变量名都是可以的
#5
jkgr152010-07-04 22:28
引用是为了让速度更快一些。
如果返回的是值的话需要创建一个副本,而返回引用只需要给他其一个别名节省了时间和空间,提高了函数的效率。
#6
wsh19912010-07-05 11:25
一样的,引用符紧贴参数或紧贴类型都是一样的
#7
evilsharp2010-07-05 20:46
明白了,谢谢。
第一次发帖,这里还是挺有人气的。
#8
南国利剑2010-07-06 02:06
呵呵,路过
1