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在创建对象前,静态成员不存在 程序运行的时候,