传统认识认为:如果我们没有定义一个自己的拷贝构造函数,编译器会帮助我们合成 一个拷贝构造函数。
结论:这个合成的拷贝构造函数,也是在 必要的时候才会被编译器合成出来。
示例代码
class A
{
public:
int m_test;
};
int main()
{
A a1;
a1.m_test=20;
A a2 = a1;
return 1;
}
加断点,F5调试,F10向下走一步(visual studio中单步调试)
a2的m_test确实被赋给了a1的m_test的值,传统我们以为此处编译器帮我们创建了拷贝构造函数,
但是我们再去查看一下.obj文件(使用dumpbin,同上篇)