菜鸟的博客

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

导航

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 2023-04-17 22:29  hhmzd233  阅读(11)  评论(0编辑  收藏  举报