background image

cout<<vals[0];
cout<<vals[9];
}
int &put(int n)
{
if (n>=0 && n<=9 ) return vals[n];
else { cout<<"subscript error"; return error; }
}
(5)在另外的一些操作符中,却千万不能返回引用:+-*/ 四则运算符。它们不能返回引
用,Effective C++[1]的 Item23 详细的讨论了这个问题。主要原因是这四个操作符没有 side 
effect,因此,它们必须构造一个对象作为返回值,可选的方案包括:返回一个对象、返
回一个局部变量的引用,返回一个 new 分配的对象的引用、返回一个静态对象引用。根据
前面提到的引用作为返回值的三个规则,第 2、3 两个方案都被否决了。静态对象的引用又
因为((a+b) == (c+d))会永远为 true 而导致错误。所以可选的只剩下返回一个对象了。

!!!!!!!!!!!!!!!!!!!!

6. “

引用 与多态的关系?

引用是除指针外另一个可以产生多态效果的手段。这意味着,一个基类的引用可以指向它
的派生类实例。
例 4
Class A; Class B : Class A{...}; B b; A& ref = b;
7. “

引用 与指针的区别是什么?

指针通过某个指针变量指向一个对象后,对它所指向的变量间接操作。程序中使用指针,
程序的可读性差;而引用本身就是目标变量的别名,对引用的操作就是对目标变量的操
作。此外,就是上面提到的对函数传 ref 和 pointer 的区别。
8. 

什么时候需要 引用 ?

流操作符<<和>>、赋值操作符=的返回值、拷贝构造函数的参数、赋值操作符=的参数、其它
情况都推荐使用引用。

 

以上 2-8 参考:http://blog.csdn.net/wfwd/archive/2006/05/30/763551.aspx
9. 结构与联合有和区别?
1. 结构和联合都是由多个不同的数据类型成员组成, 但在任何同一时刻, 联合中只存放了
一个被选中的成员(所有成员共用一块地址空间), 而结构的所有成员都存在(不同成员

 

的存放地址不同)。
2. 对于联合的不同成员赋值, 将会对其它成员重写, 原来成员的值就不存在了, 而对于结构
的不同成员赋值是互不影响的。
10. 

下面关于 联合 的题目的输出?

a)
#i nclude <stdio.h>
union
{
int i;
char x[2];
}a;

void main()
{