面试真题

C++ · 中等 · 大疆

C++什么时候生成默认拷贝构造函数?

中等 C++ 🎤 大疆
参考答案
默认拷贝构造在用户未定义且被调用时由编译器合成,执行成员级浅拷贝。触发场景:同类型对象初始化(A a2=a1;)、函数按值传参、返回非引用对象。合成条件:类无用户拷贝构造;若类含虚函数,合成版会正确复制vptr指向同类型vtable;若含非平凡成员或基类则逐成员调用其拷贝。注意默认拷贝为浅拷贝,类含指针等资源时会导致双重释放,须自定义深拷贝或=delete禁用。
题目整理自公开面经,答案由校招宝自研生成,仅供参考