构造函数和析构函数

一、构造函数

类的构造函数是类的一种特殊的成员函数,它会在每次创建类的新对象时执行。构造函数的名称与类的名称是完全相同的,并且不会返回任何类型,也不会返回 void。构造函数可用于为某些成员变量设置初始值。一般不在构造函数内声明变量

构造函数可以有参数,也可以不带参数

不带参数

#include <iostream>
#include <memory>
using namespace std;
class  ClassA
{
public:
    int num;
    ClassA()
    {
        num = 110;
        ans = 119;
        cnt = 120;
    };
    ~ClassA()
    {
        cout<<"~ClassA"<<endl;
    }
    int GetNum()
    {
        return ans;
    }
private:
    int cnt = 10;

protected:
    int ans;
};
int main() {
    //构造函数不带参数
    ClassA pclass;
    cout << pclass.num << endl;
    cout << pclass.GetNum() << endl;
    return 0;
}

带参数

#include <iostream>
#include <memory>
using namespace std;
class  ClassA
{
public:
    int num;
    //构造函数
    ClassA(int x,int y,int z)
    {
        num = x;
        ans = y;
        cnt = z;
    };
    //析构函数
    ~ClassA()
    {
        cout << "~ClassA" << endl;
    };
    int GetNum()
    {
        return ans;
    }
private:
    int cnt = 10;

protected:
    int ans;
};
int main() {
    //构造函数带参数
    ClassA pclass(110, 119, 120);
    cout << pclass.num << endl;
    cout << pclass.GetNum() << endl;
    return 0;
}

二、析构函数

类的析构函数是类的一种特殊的成员函数,它会在每次删除所创建的对象时执行。

析构函数的名称与类的名称是完全相同的,只是在前面加了个波浪号(~)作为前缀,它不会返回任何值,也不能带有任何参数。析构函数有助于在跳出程序(比如关闭文件、释放内存等)前释放资源。

原文地址:https://www.cnblogs.com/-citywall123/p/12696481.html