当前位置:网站首页>Day4:面试必考选择题
Day4:面试必考选择题
2022-08-06 00:21:00 【Slow Just Fast】
Day4:面试必考题目

题目一
下列关于构造函数的描述正确的是( ) C
A.构造函数可以声明返回类型
B.构造函数不可以用private修饰
C.构造函数必须与类名相同
D.构造函数不能带参数
解析:
A.构造函数不能有返回值,包括void类型也不行
B.构造函数可以是私有的,只是这样之后就不能直接实例化对象
C.这是必须的
D.构造函数不光可以带参数,还可以有多个构造函数构成重载
题目二
假定MyClass为一个类,则该类的拷贝构造函数的声明语句是( ) C
A.MyClass(MyClass x)
B.MyClass &(MyClass x)
C.MyClass(MyClass &x)
D.MyClass(MyClass *x)
解析:
A.参数必须是引用,否则造成无限递归
B.语法错误
C.正确
D.这种写法只是普通的构造函数,不能成为拷贝构造函数
题目三
在函数F中,本地变量a和b的构造函数(constructor)和析构函数(destructor)的调用顺序是: ( ) D
Class A;
Class B;
void F() {
A a;
B b;
}
A.b构造 a构造 a析构 b析构
B.a构造 a析构 b构造 b析构
C.b构造 a构造 b析构 a析构
D.a构造 b构造 b析构 a析构
解析:
A.构造顺序是按照语句的顺序进行构造,析构是按照构造的相反顺序进行析构,因此先构造b错误
B.a析构的时机不对,对象析构要在生存作用域结束的时候才进行析构,因此先析构a错误
C.b的构造时机错误,先构造a
D.正确,构造顺序是按照语句的顺序进行构造,析构是按照构造的相反顺序进行析构
题目四
以下代码共调用多少次拷贝构造函数: ( ) D
Widget f(Widget u)
{
Widget v(u);
Widget w=v;
return w;
}
main(){
Widget x;
Widget y=f(f(x));
}
A.1
B.3
C.5
D.7
解析:
A.调用拷贝构造函数的时机,从代码上看会有三种情形,1.对象初始化对象 2.函数参数以对象传递 3.函数的返回值以对 象返回,因此乍眼一看,超过1次,A错误
B.整个程序分别在,x初始化u、u初始化v、v初始化w、w返回时,注意w返回时初始u不在调用拷贝构造函数,第二次调用 f()函数时,相当于u的结合会少调用一次,其他不变,所以总体次数为4+3=7次
C.错误
D.正确
题目五
设已经有A,B,C,D4个类的定义,程序中A,B,C,D析构函数调用顺序为?( )B
C c;
int main()
{
A a;
B b;
static D d;
return 0;
}
A.D B A C
B.B A D C
C.C D B A
D.A B D C
解析:
分析:1、类的析构函数调用一般按照构造函数调用的相反顺序进行调用,但是要注意static对象的存在, 因为static改变了对象的生存作用域,需要等待程序结束时才会析构释放对象
2、全局对象先于局部对象进行构造
3、局部对象按照出现的顺序进行构造,无论是否为static
4、所以构造的顺序为 c a b d
5、析构的顺序按照构造的相反顺序析构,只需注意static改变对象的生存作用域之后,会放在局部 对象之后进行析构
6、因此析构顺序为B A D C
题目六
拷贝构造函数的特点是( )D
A.该函数名同类名,也是一种构造函数,该函数返回自身引用
B.该函数只有一个参数,是对某个对象的引用
C.每个类都必须有一个拷贝初始化构造函数,如果类中没有说明拷贝构造函数,则编译器系统会自动生成一个缺省拷贝构造函数,作为该类的保护成员
D.拷贝初始化构造函数的作用是将一个已知对象的数据成员值拷贝给正在创建的另一个同类的对象
解析:
A.拷贝构造函数也是一构造函数,因此不能有返回值
B.该函数参数是自身类型的对象的引用
C.自动生成的缺省拷贝构造函数,作为该类的公有成员,否则无法进行默认的拷贝构造
D.用对象初始化对象这是拷贝构造函数的使命,故正确
边栏推荐
猜你喜欢

Uni-app开发微信小程序的一些基础知识点(边学边更新)

【论文 01】《Attention is all you need》

数据库内核面试中我不会的问题(3)

shell之函数和数组

华为分析&联运活动,助您提升游戏总体付费

Kubernetes Information Security
![Embedded system driver primary [7] - kernel memory management](/img/78/046c841e9920cc80f5fd0798030b23.png)
Embedded system driver primary [7] - kernel memory management

Redis使用
Taught you how to locate online MySQL lock timeout problem, BaoJiao package

湖仓一体电商项目(六):大屏可视化工具腾讯云图
随机推荐
VR全景在教育领域发展潜力如何?有哪些启发意义?
What are the core problems in the database application system
[TypeScript] What are literal types, type inference, type widening, and type narrowing?
【数学模型】层次分析
Uniapp H5 public authorization number
文件上传 切片与断点续传
生产级Redis 高并发分布式锁实战1:高并发分布式锁如何实现
Jenkins 配置邮件
Taught you how to style of the CSP series - the SRC
PHP导出csv文件
嵌入式系统驱动初级【7】——内核内存管理
Day15 jenkins的简单使用
解决删除凭据管理器后仍然可以访问问题
shell之函数和数组
Teach you the object-src of the CSP series
Qt入门(零)——Qt概述
为什么要使用消息队列?
AVL树的学习
如何克服紧张
pjudge#21651-[PR #4]猜猜看【交互】