C++中的构造函数详解
构造函数是C++中用于初始化对象的特殊成员函数。下面我将详细介绍各类构造函数及其触发时机。
1. 默认构造函数 (Default Constructor)
定义:没有参数或所有参数都有默认值的构造函数。
class MyClass {
public:
MyClass() {
// 默认构造函数
std::cout << "Default constructor called" << std::endl;
}
};
触发时机:
- 当创建对象而不提供任何参数时
- 当类作为另一个类的成员且没有在成员初始化列表中初始化时
- 当创建数组时
- 当使用
new
但不带初始化器时
2. 参数化构造函数 (Parameterized Constructor)
定义:接受一个或多个参数的构造函数。
class MyClass {
public:
MyClass(int x, int y) {
// 参数化构造函数
std::cout << "Parameterized constructor called" << std::endl;
}
};
触发时机:
- 当创建对象并提供相应参数时
- 使用花括号初始化列表时
3. 拷贝构造函数 (Copy Constructor)
定义:使用同类型的另一个对象来初始化新对象的构造函数。
class MyClass {
public:
MyClass(const MyClass& other) {
// 拷贝构造函数