• C++:构造函数与析构函数


    一、对象的特征

    ●构造函数与析构函数

    类似于手机需要有出厂设置,出厂设置会将最基本的东西进行初始化,保证后续的使用.------------------>构造

    当你需要处理手机时,需要将你以前所有使用过的记录清理调用. --> ---------------------------------------------析构---

    1、构造函数:

    对成员属性进行初始化的函数,未初始化的属性值是未知,使用有危险性。

    2、析构函数:|

    在对象销毁之前,将对象中的成员属性进行释放(清理).

    ●构造函数

    (1)编译器会自动进行调用,不需要手动调用.(编译器强制要求必须调用构造)

    (2)如果代码中没有构造函数,则编译会自动提供(空实现! )

    (3)构造函数定义方式:

    1、 函数名与类名一致

    2、函数没有返回值,也没有void

    3、可以用参数,可以重载

    (4)调用时机:在实例化一个新对象时,构造函数会自动调用.

    (5)构造函数分类:

    (1)无参构造:函数没有参数;

    {

         类名()

         {

    }

    }

    实例化对象时,如果对象没有参数,则调用该构造。

    (2)带参构造;(构造函数可以设置一个或者多个参数)

    {

           类名(<参数类型>  <参数名>………)

    }

    (3)拷贝构造:

    ●析构函数

    (1)编译器会自动进行调用,不需要手动调用.(编译器强制要求必须调用析构)

    (2)如果代码中没有构造函数,则编译会自动提供(空实现! )

    (3)析构函数定义方式:

    1、函数名与类名一致,但是在函数名前需要添加~符号,~类名()

    2、函数没有返回值,也没有void

    3、不能有参数,意味着不可以重载

    (4)调用时机: ==在即将被对象被销毁之前,析构函数会自动调用,用于清理成员属性==

    ●定义方式:

    ~类名()

    {

                释放堆空间上的成员属性。Delete

    }

    __________________________________________

    代码:

    #include
    using namespace std;

    class Hero
    {
    public:
        Hero()
        {
            name=" ";
            attack=0;

            cout<<"构造函数"<

        }

        Hero(string name1)
        {
            name=name1;
            cout<<"带参数构造函数"<     }

        ~Hero()
        {

            cout<<"析构函数"<     }

        string name;
        int attack;
        
    };
    int main(int argc, char *argv[])
    {
        Hero He1;    //构造函数
        Hero He2;    //析构函数
        Hero He3("tom");  //带参数构造函数

        cout<     cout<     cout<     return 0;
    }

     

  • 相关阅读:
    9-VMware Horizon 2203 虚拟桌面-Connection登录失败(九)
    驱动程序开发:I2C设备驱动
    中国移动杭州公司——亚运会网络运行保障系统
    openssl编程-基础知识-回调函数
    产业互联网,并非消费互联网式的置身事外
    Redis集群高频问答,连夜肝出来了
    uni-app input设置为disable,不能点击
    FreeRtos于嵌入式环境的应用
    计算机视觉基础入门指南
    详述MIMIC 的ICU患者检测时间信息表(十六)
  • 原文地址:https://blog.csdn.net/qq_63626307/article/details/126715816