#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初始化的就是第一个构造函数,将上面两步合二为一了;(希望有不同理解的同学留个言,先谢过~~)