暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

C++进阶学习:第三节-构造函数&析构函数

Cpp入门到精通 2024-01-29
141

点击蓝字 关注我们


c++进阶学习

第三节 构造函数&析构函数


构造函数是一种特殊的成员函数,用于初始化类的对象。构造函数的名称与类名相同,没有返回类型,并且可以有参数。构造函数在对象创建时自动调用,负责初始化对象的数据成员,为对象分配资源,并执行必要的初始化操作。

构造函数主要有两种类型:默认构造函数带参数的构造函数


默认构造函数

1.默认构造函数是没有参数的构造函数。如果在类定义中没有显式提供构造函数,C++会自动生成一个默认构造函数。

2.如果你自己提供了构造函数,但没有提供默认构造函数,那么在创建对象时必须提供构造函数所需的参数

    class MyClass {
    public:
    默认构造函数
    MyClass() {
    构造函数的初始化操作
    }
    };

    带参数的构造函数

    带参数的构造函数接受一个或多个参数,用于初始化对象的数据成员。这样的构造函数允许在创建对象时传递参数。

      class Point {
      private:
      int x, y;
      public:
      带参数的构造函数
      Point(int xCoord, int yCoord) : x(xCoord), y(yCoord) {
      // 构造函数的初始化操作
      }
      };



      构造函数的重载

      你可以在同一个类中定义多个构造函数,称之为构造函数的重载。重载的构造函数根据参数的不同进行调用。

        class Rectangle {
        private:
        int width, height;
        public:
        // 默认构造函数
        Rectangle() : width(0), height(0) {}
        // 带参数的构造函数
        Rectangle(int w, int h) : width(w), height(h) {}
        };



        复制构造函数

        复制构造函数是一种特殊的构造函数,用于创建一个新对象,该对象是通过使用同一类的另一个对象进行初始化的。

          class MyClass {
          public:
          // 复制构造函数
          MyClass(const MyClass& other) {
          // 执行复制构造的初始化操作
          }
          };

          构造函数确保对象在创建时处于一个良好的状态,以便后续的操作可以正确执行。构造函数在对象创建时自动调用,不需要手动调用。


          析构函数

          析构函数是一种特殊的成员函数,用于在对象被销毁时执行清理工作。析构函数的名称与类名相同,前面加上一个波浪号 ~,没有返回类型,也不接受任何参数。

          在对象生命周期结束时(例如,当对象超出范围、程序结束或使用 delete 关键字释放动态分配的内存时),析构函数会自动被调用。析构函数通常用于释放资源、关闭文件、释放内存等清理操作。

            #include <iostream>
            using namespace std;
            class MyClass {
            public:
            // 构造函数
            MyClass() {
                    cout << "Constructor called!" << endl;
                }
            // 析构函数
            ~MyClass() {
                    cout << "Destructor called!" << endl;
            }
            };
            int main() {
            {
            // 创建一个对象
                    MyClass obj;
            // 对象在此代码块结束时销毁,调用析构函数
                }
                // 对象已销毁,离开 main 函数时程序结束,调用析构函数
            return 0;
            }



            构造函数&普通函数

            1.目的:

            构造函数:用于初始化类的对象。它们在对象创建时被自动调用,确保对象在创建时具有合适的状态。

            普通函数:用于执行一般的操作。它们需要显式调用。

            2.返回值:

            构造函数:没有返回值。构造函数的主要目的是初始化对象,而不是返回值。

            普通函数:可以有返回值,用 return 语句指定。

            3.命名规则:

            构造函数:构造函数的名称必须与类的名称相同,没有返回类型,并且不能被显式调用。

            普通函数:可以有任意的名称,需要显式调用,并且有返回类型。


            构造函数和析构函数两者一起工作,确保对象在创建和销毁过程中的正确行为。



            END

            往期推荐

            C++进阶学习:第二节-访问修饰符

            C++进阶学习:第一节-面向对象编程

            c++基础学习-目录

            文章转载自Cpp入门到精通,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

            评论