C++构造函数有以下几种:
一、默认构造函数
- 构造函数没有任何参数;
- 创建对象时,如果没有指定参数,就会调用默认构造函数;
- 如果没有显式的定义带参构造函数,编译器就会生成一个默认构造函数
class MyClass {
public:
MyClass() { // 默认构造函数
// ...
}
};
二、带参构造函数
- 允许为函数提供初始化参数
class MyClass {
public:
MyClass(int value) { // 带参数的构造函数
// 使用 value 初始化对象
}int v;
};
三、拷贝构造函数
- 从一个已存在对象创建新对象的构造函数
- 通常具有一个指向参量引用作为参数
- 在没有显式定义拷贝构造函数的时候,编译器会生成一个默认的拷贝构造函数
class MyClass {
public:
MyClass(const MyClass& other) { // 拷贝构造函数
// 使用 other 初始化对象
}
};MyClass A; //默认构造函数
MyClass B = A; //拷贝构造函数,而非=号重载