在C++中,一个类可以有多种构造函数,这些构造函数的参数列表不同。这种机制称为重载构造函数。
例如,一个类可以有如下构造函数:
- 一个不带参数的默认构造函数
- 一个带一个参数的构造函数
- 一个带两个参数的构造函数
- 一个带多个参数的构造函数
class Example {
public:
Example(); // 默认构造函数
Example(int x); // 带一个参数的构造函数
Example(int x, int y); // 带两个参数的构造函数
Example(std::vector<int> vals); // 带一个vector参数的构造函数
private:
int x, y;
std::vector<int> vals;
};
// 定义构造函数的实现
Example::Example() : x(0), y(0) {}
Example::Example(int x) : x(x), y(0) {}
Example::Example(int x, int y) : x(x), y(y) {}
Example::Example(std::vector<int> vals) : x(0), y(0), vals(vals) {}