一.
当构造受委托的构造函数时,受委托的构造函数函数体会执行而委托构造函数函数体不会执行;
class Person { public: Person() { cout << "这是一个无参构造" << endl; } Person(const Person& p) { cout << "这是一个拷贝构造" << endl; } Person(int b):Person() { cout << "这是一个有参构造" << endl; } ~Person() { } int m_b; }; int main() { Person p; system("pause"); return 0; }
当构造委托的构造函数时,受委托的构造函数函数体会和委托构造函数函数体均会执行;
1 class Person 2 { 3 public: 4 Person() 5 { 6 cout << "这是一个无参构造" << endl; 7 } 8 9 Person(const Person& p) 10 { 11 cout << "这是一个拷贝构造" << endl; 12 } 13 Person(int b):Person() 14 { 15 m_b = b; 16 cout << "这是一个有参构造" << endl; 17 } 18 ~Person() 19 { 20 21 } 22 int m_b; 23 }; 24 25 26 int main() 27 { 28 Person p(10); 29 system("pause"); 30 return 0; 31 }
二.
拷贝构造不能和有参构造相互委托,因为两者的参数列表不相互匹配
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具