基于构造函数/析构函数的C ++面试问题
有关构造函数的C++面试问题
什么是构造函数?
一个构造函数是具有相同的名称类的类的功能。在初始化对象时调用构造函数。共有三种类型的构造函数-
默认构造函数
参数化构造函数
复制构造函数
语法
class cl_name{ cl_name(){ //This is constructor.. } }
什么是析构函数?
甲析构函数是具有相同的名称前面有一个的类的类的方法tild〜符号。在代码末尾或对象被破坏或超出范围时调用它。
语法
class cl_name{ ~ cl_name(){} //destructor }
构造函数有什么用?
构造函数是与类同名的方法。构造函数的使用是在使用new 关键字创建对象时初始化该对象。
创建对象时,变量将初始化内存和基值(如果有)的大块。
析构函数的用途是什么?
析构函数是一种与〜符号前面的类具有相同名称的方法。析构函数的使用是将代码超出对象范围或使用delete关键字删除的代码重新分配内存块。
删除对象后,将调用析构函数,并将其重新分配在创建对象时创建的所有内存块。
C++中构造函数执行的顺序是什么?
创建类的对象时,将调用构造函数。调用构造函数的顺序与继承的层次结构相同。这意味着首先调用基类的对象,然后调用子类的对象,依此类推。
在C++中执行析构函数的顺序是什么?
析构函数作为构造函数以相反的顺序被调用,并且在删除类的对象时被调用。调用析构函数的顺序与继承层次结构相反。这意味着首先破坏子类的对象,然后破坏父类的对象,依此类推。
即使我们创建其他构造函数,也会创建默认构造函数吗?
如果程序员未明确定义任何构造函数,则构造函数默认由编译器创建。如果程序员定义了构造函数,则编译器将保留其工作并且不定义任何工作。