zoukankan      html  css  js  c++  java
  • [c++] 拷贝构造函数

    拷贝构造函数就是进行对象拷贝复制的函数。

    拷贝构造函数也是一种构造函数。它用同类型的对象来初始化新创建的对象。其唯一的形参是const类型&,此函数也由系统自动调用。

    拷贝构造函数也可以理解为构造函数的一种重载。

    拷贝构造函数的定义方式一:

    class 类名 {
    public:
        // 类的内部实现拷贝构造函数,内联函数
        类名(const 类名 &参数) {
            // 初始化代码
        }
    }

    拷贝构造函数的定义方式二:

    class 类名 {
    public:
        // 类的内部声明
        类名(const 类名 &参数);
    }
    
    // 类的外部实现函数
    类名::类名(const 类名 &参数) {
            // 初始化代码
    }

    拷贝构造函数的特点:

    1、拷贝构造函数名与类名相同,无返回值。

    2、它是类的成员函数,可以直接访问类的所有数据成员。

    3、在列的内部定义是内联函数。

    4、类如果没有定义类的来拷贝构造函数,编译系统就会自动生成一个默认的拷贝构造函数(简单的值拷贝),一旦开发者编写了拷贝构造函数,编译系统将不再提供。

    三种情况需要调用拷贝构造函数

    1、定义一个对象时,用另外一个对象进行初始化(常称为赋值初始化)

    2、一个对象作为函数参数,以值传递的方式传入函数体

    3、一个对象作为函数返回值,以值传递的方式从函数返回

    #include <iostream>
    
    using namespace std;
    
    class A {
    public:
        A(int a1) {
            this->a = a1;
            cout << "调用构造函数" << endl;
        }
    
        A(const A &a1) {
            this->a = a1.a;
            cout << "调用拷贝构造函数" << endl;
        }
    
    private:
        int a;
    };
    
    int main(void) {
        // 调用构造函数据
        A a(123);
        // 调用拷贝构造函数
        A b(a);
        // 调用拷贝构造函数
        A c = b;
    }
  • 相关阅读:
    计算机开机启动原理
    行业术语缩写参照表
    Ghost 克隆工具使用教程
    Windows 系统常用快捷键
    MindMaster使用技巧
    工作打印机型号驱动汇总
    Android手机免ROOT卸载系统内置应用
    RTX腾讯通聊天消息备份
    Work TEL
    成功实施ITSM SLA的5个步骤
  • 原文地址:https://www.cnblogs.com/lialong1st/p/12078500.html
Copyright © 2011-2022 走看看