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


    简介:C++中的拷贝构造函数是用于初始化对象成员属性值的一种方式,常用于拷贝复制已有的同类实例对象。

    一,拷贝构造函数的参数?

            拷贝构造函数的形式参数只有一个,即引用类型。一般需要加上const关键字修饰指针变量p,表示指针变量p指向的内存块数据无法通过p进行修改。

    1. void main(){
    2. class Person{
    3. public:
    4. Person(const int& p){
    5. cout << 666 << endl;
    6. }
    7. }
    8. }

    二,拷贝构造函数的调用时机?

            C++中存在3种构造函数,除了程序员可以认为语法上指定调用哪种构造函数。另外,编译器会自动选择帮我门调用,下面3种情况下,编译器默认调用拷贝构造函数。

    1. 复制已有同类实例对象时。
    2. 类实例作为函数形参时。
    3. 函数返回一个类实例对象时。

            原因就是:当函数形参或者函数返回值不是地址类型或者引用类型的数据类型时,都是进行的值传递,于是会生成新的内存块去储存传递进函数或者传递出函数的实例。

    1. #include
    2. using namespace std;
    3. class Person{
    4. public:
    5. Person(int age){
    6. myage = age;
    7. };
    8. Person(const Person &p){
    9. cout << 666 << endl;
    10. };
    11. int myage;
    12. };
    13. void test01(Person p){
    14. cout << p.myage <
    15. }
    16. Person test02(){
    17. Person p(20);
    18. return p;
    19. }
    20. int main(){
    21. Person p1(18);
    22. //第1种,复制其他对象
    23. Person p2(p1);
    24. //第2种,把实例对象作为实参传递过去
    25. test01(p1);
    26. //第3种,函数返回一个实例对象
    27. Person p3 = test02();
    28. cout << p3.myage << endl;
    29. }
  • 相关阅读:
    【联邦学习】联邦学习的量化传输仿真(一)
    七大排序之直接插入排序
    C语言 深度探究C语言中的函数
    vue+elementui 多级多选穿梭框(常用于省市区三级联动)
    视频编解码 — DCT变换和量化
    Redis实战案例及问题分析之单机优惠券秒杀
    [附源码]java毕业设计智慧教学平台
    《扫雷》的完善修改
    React:我们即将和后端 API 告别?
    git常用的几个命令
  • 原文地址:https://blog.csdn.net/weixin_44992737/article/details/133557422
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | 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号