牛客C++专项训练5.11 默认构造函数+静态+指针+函数指针+输出+深拷贝+浅拷贝

1.如果没有为一个类定义任何构造函数的情况下,下列描述正确的是(        )

正确答案: A   你的答案: A

A编译器总是自动创建一个不带参数的构造函数

B这个类没有构造函数

C这个类不需要构造函数

D该类不能通过编译

总体来说,只有A最合适。但是,A其实也是有点问题的,比如说当类X包含其他类成员Y时,而Y并并不能使用合成的构造函数,此时就不会创建一个不带参数的构造函数。

c++ primer 5th P236中指出:

如果类包含有内置类型或者复合类型的成员,则只有当这些成员全部被赋予了类内的初始值时,这个类才适合于使用合成的默认构造函数。

编译器必须为类合成默认构造函数的情况

一、成员对象带有默认构造函数

二、基类带有默认构造函数

三、带有虚函数

四、类派生自一个继承链,其中存在一个或更多的虚基类

 

2.关于C++中的new和C语言中的malloc,以下说法哪几个是正确的:()

正确答案: A   你的答案: A

A都是用来申请内存的

B都是函数                                     malloc是库函数,而new是操作符

C都会调用构造函数                    由于malloc是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强加于malloc。

D他们没有区别,都一样

 

 

3.在c++中,下列描述错误的是(        )

正确答案: A   你的答案: D

A在创建对象前,静态成员不存在        程序运行的时候,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值