• c++——对象的构造和析构函数、构造函数的分类及调用


    1构造函数和析构函数的概念

    有关构造函数

    1构造函数定义及调用

    1)C++中的类可以定义与类名相同的特殊成员函数,这种与类名相同的成员函数叫做构造函数;

    2)构造函数在定义时可以有参数;

    3)没有任何返回类型的声明。

    2构造函数的调用

    自动调用:一般情况下C++编译器会自动调用构造函数

    手动调用:在一些情况下则需要手工调用构造函数

    有关析构函数

    3)析构函数定义及调用

             1)C++中的类可以定义一个特殊的成员函数清理对象,这个特殊的成员函数叫做析构函数

    语法:~ClassName()

    2)析构函数没有参数也没有任何返回类型的声明

    3)析构函数在对象销毁时自动被调用

    4)析构函数调用机制

             C++编译器自动调用

    构造函数的分类及调用

    C++编译器给程序员提供的对象初始化方案,高端大气上档次。

    //有参数构造函数的三种调用方法

    class Test

    {

    private:

             int a;

             int b;

    public:

            

             //无参数构造函数

             Test()

             {

                       ;

             }

            

             //带参数的构造函数

             Test(int a, int b)

             {

                       ;

             }

             //赋值构造函数

             Test(const Test &obj)

             {

                       ;

             }

    public:

             void init(int _a, int _b)

             {

                       a = _a;

                       b = _b;

             }

    };

    1无参数构造函数

             调用方法: Test t1, t2;

    2有参构造函数

    有参构造函数的三种调用方法

    //有参数构造函数的三种调用方法

    class Test5

    {

    private:

             int a;

    public:

             //带参数的构造函数

             Test5(int a)

             {

                       printf(" a:%d", a);

             }

             Test5(int a, int b)

             {

                       printf(" a:%d b:%d", a, b);

             }

    public:

    };

    int main55()

    {

             Test5 t1(10);  //c++编译器默认调用有参构造函数 括号法

             Test5 t2 = (20, 10); //c++编译器默认调用有参构造函数 等号法

             Test5 t3 = Test5(30); //程序员手工调用构造函数 产生了一个对象 直接调用构造构造函数法

             system("pause");

             return 0;

    }

  • 相关阅读:
    console一闪而过的解决办法
    关于return
    各种js验证(笔记本)
    订单号的生成
    linux之cp/scp命令+scp命令
    11111111111
    Servlet中Web.xml文件的配置
    maven pom.xml详解
    环形缓冲区类(C++)附测试程序(转)
    环形缓冲区类(C++)绝对可用(转)
  • 原文地址:https://www.cnblogs.com/long5683/p/9772981.html
Copyright © 2020-2023  润新知