• 构造函数调用原则


    #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

  • 相关阅读:
    软件产品确认测试包括哪些方面
    利用审核元素任意修改密码漏洞
    php 安装mongodb扩展模块,rdkafka模块
    php+mysql羽毛球场地租赁管理系统
    ThreadLocal的短板,我TTL来补
    jmeter
    C++ ,VCPKG那些事
    vsftpd 配置-使用虚拟账户登录
    Java基础(十九)Map
    CenterPoint 源码流程解读(一)
  • 原文地址:https://blog.csdn.net/WOSHIZHOUWANLI/article/details/125629214