c++拷贝构造函数与赋值函数

c++中初始化对象的时候用”=”初始化,编译器调用类的拷贝构造函数 ,如果没有编写的话,系统生成默认的拷贝构造函数,拷贝构造函数只有在对对象进行初始化的时候才会调用。 c++在对创建好的对象进行赋值操作的时候,是调用类的操作符重载的(operator=)方法 .下面通过代码来验证

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 1 #include<iostream>
2 class Test
3 {
4 public:
5 Test()
6 {}
7 Test(const Test &a)
8 {
9 std::cout<<"拷贝构造函数\n";
10 }
11 void operator=(const Test &a)
12 {
13 std::cout<<"赋值函数\n";
14 }
15 } ;
16
17 int main()
18 {
19 Test a;
20 Test b=a;
21 Test c;
22 c=a;
23 return 0;
## 编译g++ -wall -o Test “Test.cpp”, 运行 ./Test 结果 拷贝构造函数 赋值函数