C++——构造函数与析构函数

C++——构造函数与析构函数

一、构造函数

应用场景: 在我们声明一个对象的时候,会调用类里的构造函数,若没有定义构造函数,则系统自动调用一个无参的构造函数。

1、语法

构造函数名必须与类名一致;
构造函数可以进行重构。重构以形参数量、类型、顺序的不同进行重构;
构造函数不存在任何返回值;
构造函数形参可以使用默认参数,且含默认参的成员应在末尾。
例:

class text{
public:
   int a,b;
   text(){
      a=1;
      b=2;
   }
   text(int x,int y=5){
      a=x;
      b=y;
   }
};

int main(){
    text a;
    cout<<a.a<<a.b<<endl;
    text b(3,4);
    cout<<b.a<<b.b<<endl;
    text c(3);
    cout<<c.a<<c.b<<endl;
    return 0;
}

根据以上的代码例子输出结果如下:
12
34
35

二、析构函数

应用场景: 在出现delete函数或不再使用此对象的时候,系统会调用析构函数释放内存。

1、性质:

析构函数在类中只能存在一个,在对象中也只能被调用一次。

2、语法:

析构函数名称与类名必须一致;
析构函数只能有一个;
析构函数不能含任何参;
析构函数不存在任何返回值。
例:

class text{
public:
   int a,b;
   text(){
      cout<<"new obj"<<endl;
   }
   ~text(){
      cout<<"delete obj"<<endl;
   }
};

int main(){
    text a;
    text* t=new text();
    delete t; 
    cout<<"hello"<<endl;
    return 0;
}

最终的输出如下:
new obj
new obj
delete obj
hello
delete obj

你可能感兴趣的:(c++,开发语言)