• 构造函数调用原则


    #if 1 //vs一个工程下面多个源文件编译,修改1为0可不进行编译

    #include <iostream>
    using namespace std;

    //1、构造函数的调用规则
    //默认构造  空实现
    //析构函数  空实现
    //拷贝构造  值拷贝


    //2、
    // 如果我们写了有参构造函数,编译器就不再提供默认构造,依然提供拷贝构造
    // 如果我们写了拷贝构造函数,编译器就不再提供其他普通构造函数
    class Person
    {
    public:
        /*Person()
        {
            cout << "Person默认构造函数调用" << endl;
        }*/

        /*Person(int age)
        {
            m_Age = age;
            cout << "Person有参构造函数调用" << endl;
        }*/

        Person(const Person& p)
        {
            m_Age = p.m_Age;
            cout << "Person拷贝构造函数调用" << endl;
        }

        ~Person()
        {
            cout << "Person析构函数调用" << endl;
        }

        int m_Age;
    };

    //void test01()
    //{
    //    Person p;
    //    p.m_Age = 18;
    //
    //    Person p2(p);
    //
    //    cout << "p2的年龄为:" << p2.m_Age << endl;
    //}

    void test02()
    {
        Person p;

        /*Person p2(p);
        cout << "p2的年龄为:" << p2.m_Age << endl;*/
    }

    int main()
    {
        test02();
        system("pause");
        return 0;
    }

    #endif

  • 相关阅读:
    ELK日志收集系统
    Ubuntu22.04下安装Spark2.4.0(Local模式)
    JavaScript 67 JavaScript HTML DOM 67.3 JavaScript - HTML DOM 文档
    浅谈ArrayList和LinkedList
    北邮21硕后端开发笔记
    国内GPU 厂商产品分布
    斗地主发牌程序的 Python 实现与解析
    33 C++ Web 编程
    minio文件上传
    数据结构学习系列之二叉树的遍历
  • 原文地址:https://blog.csdn.net/WOSHIZHOUWANLI/article/details/125629214