- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
[CC笔试面试题目]面试笔试题目及答案
1.什么是“引用”申明和使用“引用”要注意哪些问题
答:引用就是某个目标变量的“别名”(alia),对应用的操作与对变
量直接操作效果完全相同。申明一个引用的时候,切记要对其进行初始化。
引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用
名,不能再把该引用名作为其他变量名的别名。声明一个引用,不是新定
义了一个变量,它只表示该引用名是目标变量名的一个别名,它本身不是
一种数据类型,因此引用本身不占存储单元,系统也不给引用分配存储单
元。不能建立数组的引用。
2.将“引用”作为函数参数有哪些特点
(1)传递引用给函数与传递指针的效果是一样的。这时,被调函数的
形参就成为原来主调函数中的实参变量或对象的一个别名来使用,所以在
被调函数中对形参变量的操作就是对其相应的目标对象(在主调函数中)的
操作。
(2)使用引用传递函数的参数,在内存中并没有产生实参的副本,它
是直接对实参操作;而使用一般变量传递函数的参数,当发生函数调用时,
需要给形参分配存储单元,形参变量是实参变量的副本;如果传递的是对
象,还将调用拷贝构造函数。因此,当参数传递的数据较大时,用引用比
用一般变量传递参数的效率和所占空间都好。
(3)使用指针作为函数的参数虽然也能达到与使用引用的效果,但是,
在被调函数中同样要给形参分配存储单元,且需要重复使用某指针变量
名的形式进行运算,这很容易产生错误且程序的阅读性较差;另一方面,
在主调函数的调用点处,必须用变量的地址作为实参。而引用更容易使用,
更清晰。
3在什么时候需要使用“常引用”
如果既要利用引用提高程序的效率,又要保护传递给函数的数据不在
函数中被改变,就应使用常引用。常引用声明方式:cont类型标识符引
用名=目标变量名;
例1
inta;
contintra=a;
ra=1;//错误
a=1;//正确
例2
tringfoo();
voidbar(tring)
//那么下面的表达式将是非法的:
bar(foo());
bar(helloworld);
原因在于foo()和helloworld串都会产生一个临时对象,而在C++
中,这些临时对象都是cont类型的。因此上面的表达式就是试图将一个
cont类型的对象转换为非cont类型,这是非法的。
引用型参数应该在能被定义为cont的情况下,尽量定义为cont
1.“引用”与指针的区别是什么
指针通过某个指针变量指向一个对象后,对它所指向的变量间接操作。
程序中使用指针,程序的可读性差;
而引用本身就是目标变量的别名,对引用的操作就是对目标变量的操
作。此外,就是上面提到的对函数传ref和pointer的区别。
2.什么时候需要“引用”
流操作符和、赋值操作符=的返回值、拷贝构造函数的参数、赋
值操作符=的参数、其它情况都推荐使用引用。
3.结构与联合有和区别
1.结构和联合都是由多个不同的数据类型成员组成,但在任何同一时
刻,联合中只存放了一个被选中的成员(所有成员共用一块地址空间),而结
构的所有成员都存在(不同成员的存放地址不同)。
2.对于联合的不同成员赋值,将会对其它成员重写,原来成员的值就不
存在了,而对于结构的不同成员赋值是互不影响的。
涉及到UML中的一些概念:
聚合表示ha-a的关系,是一种相对松散的关系,聚合类不需要对被
聚合类负责,如下图所示,用空的菱形表示聚合关系:
从实现的角度讲,聚合可以表示为:
claA{...}claB{A某a;}
组合表示contain-a的关系,关联性强于聚合:组合类与被组合类有
相同的生命周期,组合类要对被组合类负责,采用实心的菱形表示组合关
系:
实现的形式是:
claA{...}claB{Aa;...}
2.面向对象的三个基本特征,并简单叙述之
1.封装:将客观事物抽象成类,每个类对自身的数据和方法实行
protection(private,protected,public)
2.继承:广义的继承有三种实现形式:实现继承(指使用基类的属性
和方法而无需额外编码
文档评论(0)