码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • C++ 24 之 拷贝构造函数


    c24拷贝构造函数.cpp

    1. #define _CRT_SECURE_NO_WARNINGS
    2. #include
    3. using namespace std;
    4. class Person3 {
    5. private:
    6. int p_age;
    7. public:
    8. // 构造函数分类:
    9. // 按参数分类:1、有参 2、无参
    10. // 按类型分类:普通、拷贝(复制)
    11. Person3() {
    12. cout << "默认构造函数" << endl;
    13. }
    14. // explicit 防止使用隐式方法来实现构造函数
    15. explicit Person3(int age) {
    16. p_age = age;
    17. cout << "有参数的构造函数" << p_age << endl;
    18. }
    19. // 拷贝构造函数
    20. // 不能使用值传递,用引用传递;
    21. // 需要添加const,因为不允许进行修改!
    22. Person3(const Person3 &p) {
    23. p_age = p.p_age;
    24. cout << "拷贝构造函数" << p_age << endl;
    25. }
    26. ~Person3() {
    27. cout << "析构函数" << endl;
    28. }
    29. };
    30. // 单独的一个方法
    31. // 值传递本身就是拷贝一个副本再操作,所以会执行拷贝构造函数
    32. void send_val(Person3 p) {
    33. }
    34. int main(void)
    35. {
    36. // 调用方法:
    37. // 1、括号法
    38. Person3 p1; // 调用的是默认构造函数
    39. Person3 p2(18);
    40. Person3 p3(p2);// 用一个对象初始化另一个对象 会调用拷贝构造函数
    41. cout << "--------" << endl;
    42. //Person3 p11();// 无参不能加小括号 不能直接调用无参构造函数,因为编译器把它当做函数声明
    43. // 2、显示法
    44. Person3 p4 = Person3();
    45. Person3 p5 = Person3(22);
    46. Person3 p6 = Person3(p5);
    47. cout << "--------" << endl;
    48. Person3(66); // 注意:1、匿名对象 执行完毕后,立即释放,立即执行析构函数
    49. cout << "66的后面" << endl;
    50. cout << "--------" << endl;
    51. //注意:2、不要用拷贝构造函数初始化匿名对象
    52. //Person3(p5); // Person3 p5; 当做对象的实例化看待,报错重定义
    53. //3、隐式法: 不推荐使用,因为可读性非常差。
    54. //Person3 p7 = 10; // 相当于 Person3 p7 = Person3(10);
    55. //Person3 p8 = p7;// 相当于 Person3 p8 = Person3(p7);
    56. Person3 p9(29);
    57. // 值传递本身就是拷贝一个副本再操作,所以会执行拷贝构造函数
    58. send_val(p9); // 传了一个对象进去,同时触发了构造函数 p9也是值
    59. Person3 p10(18);
    60. Person3 p11(p10);
    61. return EXIT_SUCCESS;
    62. }

  • 相关阅读:
    最好的前端框架
    PACS外围硬件--九五小庞
    GateWay——向其他服务传递参数数据(思路)
    论文阅读 基于机器学习文本处理的PHP和JSP Web shell检测系统(上海交大)
    Linux网络配置解析:连接世界的关键步骤
    typeScript--[interface接口实现类的定义,函数定义,可索引定义]
    数组存放二进制,转十进制(C实现)
    故障分析 | MySQL锁等待超时一例分析
    (二十四)大数据实战——Flume数据流监控之Ganglia的安装与部署
    虹科分享 | 网络仿真器 | 预测云中对象存储系统的实际性能
  • 原文地址:https://blog.csdn.net/LSG_Down/article/details/139663061
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号