基于构造函数/析构函数的C++面试题
关于构造函数的C++面试题
什么是构造函数?
**构造函数**是与类名相同的类函数。构造函数在对象初始化时被调用。构造函数有三种类型:
- 默认构造函数
- 参数化构造函数
- 复制构造函数
语法
class cl_name{ cl_name(){ //This is constructor.. } }
什么是析构函数?
**析构函数**是类的一个方法,其名称与类名相同,前面带有**波浪号 ~** 符号。它在代码结束或对象被销毁或超出作用域时被调用。
语法
class cl_name{ ~ cl_name(){} //destructor }
构造函数有什么用?
构造函数是与类名相同的方法。构造函数的用途是在使用**new**关键字创建对象时初始化对象。
创建对象时,变量会被初始化为内存块和基值(如果存在)。
析构函数有什么用?
析构函数是与类名相同并在前面带有 ~ 符号的方法。析构函数的用途是在代码超出对象的作用域或使用**delete关键字**删除对象时释放内存块。
删除对象时,会调用析构函数,它会释放创建对象时分配的所有内存块。
C++中构造函数的执行顺序是什么?
创建类的对象时会调用构造函数。构造函数的调用顺序与继承的层次结构相同。这意味着首先调用基类的对象,然后调用子类的对象,依此类推。
C++中析构函数的执行顺序是什么?
析构函数的调用顺序与构造函数相反,并在删除类的对象时调用。析构函数的调用顺序与继承的层次结构正好相反。这意味着首先销毁子类的对象,然后销毁父类的对象,依此类推。
即使我们创建了任何其他构造函数,也会创建默认构造函数吗?
如果程序员没有显式定义任何构造函数,则编译器会默认创建构造函数。如果程序员定义了构造函数,则编译器会停止其工作,不再定义任何构造函数。
广告