2023.4.17
1 //拷贝构造函数的调用时机 2 #include <iostream> 3 using namespace std; 4 //1.使用一个已经创建完的对象来初始化一个新对象 5 //2.值传递的方式给函数参数传值 6 //3.值方式返回局部对象 7 class Person 8 { 9 public: 10 Person() 11 { 12 cout<<"Person默认构造函数调用"<<endl; 13 } 14 Person (int age) 15 { 16 cout<<"Person有参构造函数调用"<<endl; 17 m_Age = age; 18 } 19 Person(const Person &p) 20 { 21 cout<<"Person拷贝构造函数调用"<<endl; 22 m_Age = p.m_Age; 23 } 24 ~Person() 25 { 26 cout<<"Person析构函数调用"<<endl; 27 } 28 int m_Age; 29 }; 30 //1.使用一个已经创建完的对象来初始化一个新对象 31 void test01() 32 { 33 Person p1(20); 34 Person p2(p1); 35 cout<<"p2的年龄为:"<<p2.m_Age<<endl; 36 } 37 //2.值传递的方式给函数参数传值 38 void doWork(Person p) 39 { 40 41 } 42 void test02() 43 { 44 Person p; 45 doWork(p); 46 } 47 //3.值方式返回局部对象 48 Person doWork2() 49 { 50 Person p1; 51 return p1; 52 } 53 void test03() 54 { 55 Person p = doWork2(); 56 } 57 58 int main() 59 { 60 test01(); 61 test02(); 62 test03(); 63 return 0; 64 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?