【C++】构造函数和析构函数

一、构造函数

主要作用在于创建对象时为对象的成员属性赋值,构造函数由编译器自动调用,无须手动调用。

语法:类名(){}

1.构造函数没有返回值也不用写void。

2.函数名称与类名相同。

3.构造函数可以有参数,因此可以发生重载。

4.程序在调用对象时候会自动调用构造,无须手动调用,而且只会调用一次。

class Person
{
    public:
    Person(){
        cout <<"Person构造函数的调用"<<endl;
    }
}

二、拷贝构造函数

为保证数据不变需用到const + 引用来拷贝构造函数。

class Person
{
    public:
    Person(){
        cout <<"Person构造函数的调用"<<endl;
    }
    
    Person(int a){
        cout <<"Person有参构造函数的调用"<<endl;
        age = a;
    }
    
    Person(const Person &p){
        age = p.age;
    }
    int age;
}

三、构造函数的调用

形式一(括号法)、

Person p1;
Person p2(10);//有参
Person p3(p2);

形式二(显示法)、

Person p1;
Person p2 = Person(10);
Person p3 = Person(p2);

形式三(隐式转换法)、

Person p2 = 10;
Person p3 = p2;

四、析构函数

主要作用于对象销毁前系统自动调用,执行一些清理。

语法:~类名(){}

1.析造函数没有返回值也不用写void。

2.析数名称与类名相同,在类名前加~。

3.析造函数不可以有参数,因此不可以发生重载。

4.程序在对象销毁前会自动调用析构,无须手动调用,而且只会调用一次。

class Person
{
    public:
    Person(){
        cout <<"Person构造函数的调用"<<endl;
    }
    
    ~Person(){
        cout <<"Person析构函数的调用"<<endl;
    }
}

猜你喜欢

转载自blog.csdn.net/qq_26082507/article/details/120576821