[CC笔试面试题目]面试笔试题目及答案.pdf

[CC笔试面试题目]面试笔试题目及答案.pdf

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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)

夜~紫儿 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档