在C++中,在以下情况下可以调用复制构造函数:
1.按值返回类的对象时。
2.当类的对象通过值作为参数传递(传递给函数)时。
3.基于同一类的另一个对象构造一个对象时。
4.编译器生成临时对象时。
但是,不能保证在所有这些情况下都将调用复制构造函数,因为C++标准允许编译器在某些情况下优化复制,例如返回值优化(有时称为RVO)。
参考:
http://www.fredosaurus.com/notes-cpp/oop-condestructors/copyconstructors.html
http://en.wikipedia.org/wiki/Copy_constructor
要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程” 。