菜鸟的博客

纵有疾风起,人生不言弃。

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

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 }
复制代码

 

posted on   hhmzd233  阅读(12)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示