首页 > 其他 > 详细

类的转换函数与对象初始化合并在一条语句会发生什么?

时间:2019-05-11 10:39:46      阅读:114      评论:0      收藏:0      [点我收藏+]

#include <iostream>
using namespace std;

class A
{
private:
  int m_a;
public:
  A(int a)
  {
    m_a = a;
  }
};

int main()
{
  A apple = A(4);
  cout << &a << endl;

  return 0;
}

原以为,A(4)会调用类型转换函数A(int a){m_a = a;} , 然后用A(4)给apple初始化时再调用未定义copy构造(为什么会认为调用copy构造呢?);

事实上,单步调试发现,会走到第一个构造函数,记一下这个this指针,然后回到主函数,看看apple的地址,是和刚才的this指针相同,说明给apple初始化的就是第一个构造函数,将上面两步合二为一了;(希望有不同理解的同学留个言,先谢过~~)

类的转换函数与对象初始化合并在一条语句会发生什么?

原文:https://www.cnblogs.com/IvanKeller/p/10847440.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!