---------------------------------------分界线----------------------------------
为什么没调用 myDate 类的 复制构造函数 ??
如果你使用的是 C++11 标准编译,根据你提供的信息,编译器为了提高效率,会使用移动构造函数,它的函数声明是myDate::myDate(myDate &&d)
,你可以重写这个函数看看。
因为编译器替你优化了。你理解的过程是,调用这个函数的一方先构造一个 date 对象,然后在调用 date 的拷贝构造把这个对象作为参数复制给函数的 stack frame。但是编译器看到你的代码,他知道可以直接把这个对象创建在函数的栈帧上,所以编译器直接在你需要的“最终目的”上构造这个对象就可以了。
是的。为了提高效率,编译器帮助你使用了移动构造函数