我用生活中的例子和简单的代码来帮你理解这些构造函数和操作符的作用。它们就像是对象的“出生证明”、“复印机”、“搬家服务”和“内容替换工具”。
---
### **1. 默认构造函数(不带参数)**
#### **作用**
- **创建对象时的初始化**:当你不提供任何参数创建对象时,自动调用。
- **编译器自动生成**:如果你不写任何构造函数,编译器会生成一个空的默认构造函数。
#### **比喻**
就像工厂生产一辆“裸车”:
- 没有颜色、没有座椅,但至少能开(对象存在但数据可能为空)。
#### **代码示例**
```cpp
class Car {
public:
Car() { // 默认构造函数(不带参数)
color = "未知";
seats = 0;
}
string color;
int seats;
};
int main() {
Car myCar; // 调用默认构造函数
cout << myCar.color; // 输出:未知
}
```
---
### **2. 拷贝构造函数**
#### **作用**
- **复制对象**:用另一个同类型对象初始化新对象。
- **形式**:`Car(const Car& other)`
#### **比喻**
就像用复印机复印一份文件: