【C++基础】构造函数与析构函数

c

类中的对象,不仅可以有变量,还可以有函数;那么构造函数与析构函数是两个特殊的函数。

构造函数

构造函数定义了一个名称与类名相同,没有返回值的函数,这个函数成为构造函数;

它会在类的实例化中被调用(上一文章提过)

析构函数定义则是一个名称比类名多一个“~”的函数,同样没有返回值;构造函数在对象实例化的时候调用,析构函数则是在对象被销毁的时候调用。

#include<iostream>

class Stu{
pbulic:
    Stu();   //构造函数
    ~Stu();   //析构函数
}

构造函数析构函数,普遍放在public中,以便让对象调用。

示例

#include <iostream>

using namespace std;

class Stu{
    public:
    Stu(){
        cout<<"学生类的构造函数执行"<<endl;
    };
    ~Stu();
};

Stu::~Stu(){
    cout<<"学生类的析构函数执行"<<endl;
}

int main()
{
    Stu stu1;                    //栈中实例化
    Stu *stu2 = new Stu;      //栈中实例化
    delete stu2;            //栈中实例化,必须用delete释放
    return 0;
}

这里我的析构函数采用的是类中声明,在类外定义,这种方法对于函数也是可行的。

在类实例化对象时候,如果没有构造函数,则编译器会合成一个默认的析构函数;当有了对象后,如果没有定义构造函数,则编译器会合成一个默认的析构函数。

 //此时则是使用默认的构造函数和析构函数
class Stu{
    public:   
    Stu();
    ~Stu();
};
//这种情况也是
class Stu{
    public:   
    
};

相关文章

【C++基础】类的继承

继承的概念 什么是继承:日常生活中儿子继承父亲,这个就是继承。 - 什么是基类和派生类 创建新类时,并不需要创建全新的数据和成员函数,我们可以指明这个新类继承现有类的成员。此时,现有的类称为“基类”(父亲),继承实现的新类称为“派生类”(儿子)。 _白话解释:创建一个孩子时,并不需要重新构造各种身体特征,可以直接表明这个孩子是某个活着的父亲的。那么孩子就可以和这个父亲在某些方面比较像。_...

c

【C++基础】函数重载

概念 在同一个作用域内,声明几个功能类似的**同名函数**,并且这些同名函数的**参数个数、参数类型或参数顺序不同,或者函数返回类型不同**,那么就叫函数重载。 _白话说明:函数就是可以看成一个人,这个人都叫刘bin,但是他们并不一样。_ 函数重载示例 ``` #include <iostream> using namespace std; class Stu { public:...

c

【C++基础】什么是类和对象

C语言是个面向过程的程序设计,C++是面向对象的程序设计 类的概念 - C++中的类是一种构造模型,与C的结构体相似,但进行了一些扩展,类的成员不但可以是对象还可以是函数;通过类定义的变量成为“对象”。 - 类是创建对象的模板,这里同样与C的结构体的概念类似,一个类可以创建多个对象,每个对象都是类这一类型中的一个变量;创建对象的过程也叫类的实例化。 - 如果理解不了,可以想象成...

c