下载此文档

cc面试题大汇总.pdf


文档分类:资格/认证考试 | 页数:约40页 举报非法文档有奖
1/40
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/40 下载此文档
文档列表 文档介绍
: .
局部变量的引用是不可取的。因
为随着该局部变量生存期的结束,相应的引用也会失效,产
生 runtime error!
注意:
(1)不能返回局部变量的引用。主要原因是局部变量会
在函数返回后被销毁,因此被返回的引用就成为了 "无所指"
的引用,程序会进入未知状态。
(2)不能返回函数内部n e w 分配的内存的引用。 可对于
这种情况,又面临其它尴尬局面。例如,被函数返回的引用
只是作 为一个临时变量出现,而没有被赋予一个实际的变量,
那么这个引用所指向的空间(由n e w 分配)就无法释放,造成
memory leak。
⑶可以返回类成员的引用,但最好 是 c onst。(4)流操作 符重载返回值申明为“引用”的作 用:
流操作 符》,这两个操作 符常常希望被连续使用,例如:
cout #include
int&put(int n);
int vals[10];
int error = - 1 ;
void main()
(
put ( 0 ) : 10; / / 以 put (0)函数值作 为左值,等价于
vals[0]=10;
put ( 9 ) = 20; / / 以 put (9)函数值作 为左值,等价于
vals[9]=20;
cout cout }
int&put(int n)
(
if (n>=0&& n {
return vals[n];
}
else
cout return error;(5)在另外的一些操作 符中,却千万不能返回引用:+-*/
四则运算符 。 C++[l]的 Item23
详细的讨论了这个问题。主要原因是这四个操作符 没有side
effect,因此,它们必须构造一个对象作为返回值,可选的
方案包括:返回一个对象、返回一个局部变量的引用,返回
一 个 n e w 分配的对象的引用、返回一个静态对象引用。根
据前面提到的引用作为返回值的三个规则,第 2 、3 两个方
案都被否决了。静态对象的引用又因为((a+b) == (c+d))会
永 远 为 t r u e 而导致错误。所以可选的只剩下返回一个对象
To
6. “引用”与多态的关系?
引用是除指针外另一个可以产生多态效果的手段。这意
味着,一个基类的引用可以指向它的派生类实例
Class A ;
Class B : Class A
(
// ...
};
B b ;
A&ref= b ;
7. “引用”与指针的区别是什么?指针通过某个指针变量指向一个对象后,对它所指向的
变量间接操作。程序中使用指针,程序的可读性差;
而引用本身就是目标变量的别名,对引用的操作就是对
目标变量的操作,可读性强。
8 . 什 么 时 候 需 要 “引用 ”?
流操作符 》、赋值操作符 二的返回值、拷贝构造函数的参
数 、赋值操作符 二的参数。
9 . 结构与联合有和区别?
1 . 结构和联合都是由多个不同的数据类型成员组成,
但在任何同一时刻,联合中只存放了一个被选中的成员(所
有成员共用一块地址空间),而结构的所有成员都存在(不
同成员的存放地址不同)。
2 . 对于联合的不同成员赋值,将会对其它成员重写,
原来

cc面试题大汇总 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数40
  • 收藏数0 收藏
  • 顶次数0
  • 上传人cjc201601
  • 文件大小4.26 MB
  • 时间2022-08-17