构造函数:当类对象创建时调用,析构函数:在类对象生命周期结束前调用。

构造函数使用格式

类名(){}

析构函数使用格式

~类名(){}

构造函数、析构函数示例:

#include <iostream>
#include <string.h>
using namespace std;
class Student{
    public:
    string name;
    int score;
    void examination(){
        cout << name << "的考试成绩:" << score <<endl;
    }
    Student(){
        cout << "类对象正在被初始化" <<endl;
    }
    ~Student(){
        cout << "类对象正在被销毁" <<endl;
    }

};
int main(){
    Student student;
    student.name = "陈";
    student.score = 99;
    student.examination();
    return 0;
}

运行结果:

类对象正在被初始化
陈的考试成绩:99
类对象正在被销毁

值得注意的是:
1.构造函数和析构函数在编译程序时,就算不定义。编译器也会自己定义构造函数和析构函数,但只是一个空的析构函数和构造函数。
而如果手动定义了构造函数、析构函数。则使用已经定义的。

2.构造函数可以有形参但不能有返回值,而析构函数都不能有形参和返回值。并且它们都只会调用1次,仅此而已。

有参构造函数的调用

类 对象(参数);
#include <iostream>
#include <string.h>
using namespace std;
class Person{
    public:
    string name = "陈陈菌";
    int score = 99;
    int age;
    Person(int age){
        this->age = age;
        cout << name << endl;
        cout << "成绩:" << score << endl;
        cout << "年龄:" << age << endl;
    }
};
int main(){
    //调用有参构造函数
    Person person(10);

}

运行结果:

陈陈菌
成绩:99
年龄:10

无参构造函数的调用

类 对象;
#include <iostream>
#include <string.h>
using namespace std;
class Person{
    public:
    string name = "陈陈菌";
    int score = 99;
    int age;
    Person(){
        this->age = 10;
        cout << name << endl;
        cout << "成绩:" << score << endl;
        cout << "年龄:" << age << endl;
    }
};
int main(){
    //调用无参构造函数
    Person person;

}

运行结果:

陈陈菌
成绩:99
年龄:10
文章目录