C++中构造函数和析构函数的区别

构造函数:
构造函数是与类名同名的类的成员函数。它有助于初始化类的对象。它可以接受或不接受参数。它用于将内存分配给类的对象。每当创建类的实例时都会调用它。它可以使用参数或不使用参数手动定义。一个类中可以有很多构造函数。它可以重载,但不能继承或虚拟。有一个复制构造函数的概念,用于从另一个对象初始化一个对象。

语法:

ClassName() {      //Constructor's Body  } 

析构函数:
与构造函数一样,析构函数也是类的成员函数,该类的名称与前面加波浪号(~) 运算符的类名相同。它有助于释放对象的内存。它在类的对象被释放或删除时调用。在一个类中,总是有一个没有任何参数的析构函数,所以它不能被重载。它总是以构造函数的相反顺序调用。如果一个类被另一个类继承并且两个类都有析构函数,则首先调用子类的析构函数,然后调用父类或基类的析构函数。

语法:

~ClassName(){      //Destuctor's Body } 

注意:如果没有为类中的成员指定任何访问修饰符,那么默认情况下,成员的访问修饰符将是 Private

构造函数和析构函数的示例/实现:

#include <iostream> using namespace std;  class Z { public:     // constructor     Z()     {         cout<<"Constructor called"<<endl;     }      // destructor     ~Z()     {         cout<<"Destructor called"<<endl;     } };  int main() {     Z z1; // Constructor Called     int a = 1;     if(a==1)     {         Z z2; // Constructor Called     } // Destructor Called for z2 } // Destructor called for z1 

运行结果:

Constructor called Constructor called Destructor called Destructor called 

C++中构造函数和析构函数的区别:

构造函数 析构函数
构造函数帮助初始化一个类的对象。 析构函数用于销毁实例。
构造函数声明为 Classname( arguments if any ){Constructor's Body } 析构函数被声明为〜ClassName(){}
构造函数可以接受或不接受参数。 析构函数不能有任何参数。
在创建类的实例或对象时调用构造函数。 析构函数在类的对象被释放或删除时调用。
构造函数用于为实例或对象分配内存。 析构函数用于释放类对象的内存。
构造函数可以重载。 析构函数不能超载。
构造函数名与类名相同。 析构函数的名称也与前面带有平铺 (~) 运算符的类名相同。
在一个类中,可以有多个构造函数。 在一个类中,总是有一个析构函数。
有一个复制构造函数的概念,用于从另一个对象初始化一个对象。 析构函数没有复制构造函数的概念。

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/264496.html

(0)
上一篇 2022年6月7日
下一篇 2022年6月7日

相关推荐

发表回复

登录后才能评论