目录
一、概述
拷贝构造函数是构造函数的一种,它只有一个参数,参数类型是本类的引用。
复制构造函数的参数可以是 const 引用,也可以是非 const 引用。 一般使用前者,这样既能以常量对象(初始化后值不能改变的对象)作为参数,也能以非常量对象作为参数去初始化其他对象。一个类中写两个复制构造函数,一个的参数是 const 引用,另一个的参数是非 const 引用,也是可以的。
不写复制构造函数,编译器就会自动生成复制构造函数。大多数情况下,其作用是实现从源对象到目标对象逐个字节的复制,即使得目标对象的每个成员变量都变得和源对象相等。
实例
#include <iostream>
#include <string>
using namespace std;
class Car
{
public:
string name;
//普通构造函数
Car(string str)
{
name = str;
cout << "普通构造函数调用" << endl;
}
//拷贝构造函数
Car(const Car & c)
{
name = c.name;
cout << "拷贝构造函数调