1、拷贝构造函数是构造函数的一种
2、当利用已经存在的对象创建一个新对象时(类似于拷贝),就会调用新对象的拷贝构造函数 进行初始化
3、拷贝构造函数的格式是固定的,接收一个const引用作为参数
#include<iostream>
using namespace std;
class Car{
int m_price;
int m_length;
public:
//构造函数,初始化成员变量
Car(int price = 0, int length = 0) :m_price(price), m_length(length) {
cout << "Car(int price = 0, int length = 0)" << endl;
}
//拷贝构造函数,初始化成员变量
Car(const Car &car) :m_price(car.m_price), m_length(car.m_length) {
cout << "Car(const Car &car)" << endl;
//m_price = car.m_price;
//m_length = car.m_length;
}
void display() {
cout << "price=" << m_price << ",length=" << m_length << endl;
}
};
int main() {
//对象只要创建完成,就会调用构造函数进行初始化
//Car car1;
//Car car2(100);
Car car3(100, 5);
//利用已经存在的car3对象创建car4对象
//car4调用拷贝构造函数初始化
Car car4(car3);
car4.display();
getchar();
return 0;
}