&563 2023-03-01 10:14 采纳率: 100%
浏览 14
已结题

关于#c++#的问题:this传参等不等于传值传参如果在拷贝构造函数里传一个this会不会引起递归 比如Date temp(*this)

this传参等不等于传值传参
如果在拷贝构造函数里传一个
this会不会引起递归 比如Date temp(*this)

  • 写回答

1条回答 默认 最新

  • 社区专家-Monster-XH 2023-03-01 10:22
    关注

    基于Monster 组和GPT的调写:

    • 在C++中,this指针表示当前对象的地址,可以用来访问当前对象的成员变量和成员函数。
    • 在成员函数内部,this指针默认作为一个隐藏的参数传递给函数,因此在成员函数内部可以直接使用this指针访问对象的成员变量和成员函数。
    • this指针的传递方式与函数参数的传递方式相同,分为传值和传引用两种方式。
    • 默认情况下,this指针是以指针形式传递的,也就是传引用,因为this指针所指向的对象可能很大,如果每次调用成员函数都复制一遍当前对象,将会消耗大量的时间和内存资源。
    • 如果在拷贝构造函数里传递this指针,会导致递归调用拷贝构造函数,因为拷贝构造函数的作用是创建一个新的对象并初始化它的成员变量,如果在拷贝构造函数里调用自身,将会不断地创建新的对象,直到内存耗尽。
    • 因此,在拷贝构造函数里不能传递this指针。如果需要在拷贝构造函数里访问当前对象的成员变量,可以直接使用当前对象的成员变量,不需要传递this指针。
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 3月9日
  • 已采纳回答 3月1日
  • 创建了问题 3月1日

悬赏问题

  • ¥15 目详情-五一模拟赛详情页
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line