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

    什么是拷贝构造函数

    拷贝构造函数是一种特殊的构造函数,它的形式如下。

    struct Test
    {
        Test()
        {
    
        }
        Test(const Test& other) // 拷贝构造函数
        {
            cout << "Copy constructor" << endl ;
        }
    };

    什么情况下调用拷贝构造函数

    以下几种情况会调用拷贝构造函数。

    • 以一个对象初始化另一个对象
    • 函数以某个对象为参数
    • 函数返回某个对象
    • 初始化序列式容器的元素
    struct Test
    {
        Test()
        {
    
        }
        Test(const Test& other)
        {
            cout << "Copy constructor" << endl ;
        }
    };
    
    // 函数以类对象为参数,会调用Test的拷贝构造函数
    void TestFunc(Test test)
    {
    
    }
    
    // 函数返回类的对象,会调用拷贝构造函数
    Test TestFunc1()
    {
        Test t ;
        return t ;
    }
    
    int main ()
    {
        Test t ;
        TestFunc(t) ;
        TestFunc1() ;
        Test t1(t) ; // 以一个对象初始化另外一个对象,会调用拷贝构造函数
    
        // 初始化序列式容器会调用拷贝构造函数
        vector<Test> v(3) ; // 调用一次构造函数及三次拷贝构造函数
    
        system("pause") ;
        return 0;
    }

    ==

  • 相关阅读:
    int (*p)[10] 与*p[10]的区别
    运算顺序
    关于linux开机进入grub问题的解决方法
    对于特殊字符串的处理方法
    学习进度条
    阅读《实例化需求》4-6章有感
    学习进度条
    阅读《实例化需求》1-3章有感
    问题账户需求分析
    2016年秋季个人阅读计划
  • 原文地址:https://www.cnblogs.com/graphics/p/1771695.html
Copyright © 2011-2022 走看看