八、C++ 类的构造函数和析构函数

文章目录

  • 一、构造函数和析构函数
    • 1.1 构造函数
    • 1.2 析构函数

一、构造函数和析构函数

1.1 构造函数

类的构造函数是类的一种特殊的成员函数,它会在创建新的类的对象时执行

  • 特点:
    • 与类的名称完全相同
    • 不返回任何类型
    • 可以带参数,也可以不带参数
  • 作用:
    • 为某些成员函数设置初始值
    • 在C++中,可以使用构造函数的具体实现来初始化参数,也可以使用初始化列表来初始化字段

1.2 析构函数

类的析构函数会在每次删除所创建的对象时执行

  • 特点:

    • 与类的名称相同,只是在前面加~
    • 不带参数,不返回任何值
  • 作用:

    • 跳出程序前释放资源
  • 代码实现:

    #include 
    
    using namespace std;
    
    class test
    {
    public:
        // 声明类的构造函数
        test(int a, int b, int c);
        // 声明类的析构函数
        ~test();
        int A;
        int B;
        int C;
    };
    /*************************************
     * 通过构造函数初始化成员函数参数
     *************************************/
    
    // 法一:通过构造函数内部实现进行赋值
    // test::test(int a, int b, int c)
    // {
    //     cout << "This is 构造函数!" << endl;
    //     // this->A = a;
    //     // this->B = b;
    //     // this->C = c;
    //     A = a;
    //     B = b;
    //     C = c;
    // }
    
    // 法二:通过初始化列表来初始化字段
    // 注意:通过该方法初始化时,必须按照变量的顺序来
    // 初始化变量,否则用后面的变量初始化前面的变量会
    // 导致前面的变量默认为0
    test::test(int a, int b, int c) : A(a), B(b), C(c)
    {
        cout << "每次创建类的对象,都会自动执行类的构造函数!" << endl;
    }
    
    
    test::~test()
    {
        cout << "程序结束,释放资源" << endl;
    }
    int main()
    {
        test t1(10, 21, 30);
        cout << "A:" << t1.A << endl;
        cout << "B:" << t1.B << endl;
        cout << "C:" << t1.C << endl;
    }
    
  • 运行结果:

    每次创建类的对象,都会自动执行类的构造函数!
    A:10
    B:21
    C:30
    程序结束,释放资源
    

你可能感兴趣的:(C++学习笔记,c++,开发语言)