1 #include <iostream> // 标准的输入输出
2 using namespace std;
3
4
5 class Person
6 {
7 public:
8 Person()
9 {
10 ¦ cout << "无参构造函数" << endl;
11 }
12
>> 13 Person(const Person& p)
14 {
15 ¦ cout << "拷贝构造函数" << endl;
16 }
17
18 ~Person()
19 {
20 ¦ cout << "析构函数调用" << endl;
21 }
22
23 int m_Age;
24 };
25
26 //拷贝构造调用的时机
27 //1 用已经创建好的对象初始化新的对象
28 void test1()
29 {
30 Person p1;
31 p1.m_Age = 18;
32 Person p2(p1);
33 }
34
35 //2 以值传递的方式给函数参数传值
>> 36 void doWork(Person p1) //Person p1 = Person(p)
37 {
38
39 }
40
41 void test2()
42 {
Person p;
44 p.m_Age = 10;
45 doWork(p);
46 }
47
48
49 //3 以值得方式返回局部对象
50 Person doWork2()
51 {
52 Person p1;
53 return p1;
54 }
55
56 // Release会对代码进行优化 在vs中!
57 void test3()
58 {
59 Person p = doWork2();
60 }
61 int main()
62 {
63 test1();
64 test2();
65 test3();
66 return 0;
67 }
C++ 拷贝构造函数的调用时机代码
最新推荐文章于 2024-08-06 10:22:43 发布