以下是一些关于非默认构造函数的特点:
1. 参数化:非默认构造函数通常包含参数,这些参数在创建对象时会被传递,用于初始化对象的成员变量。
2. 初始化:非默认构造函数可以用来初始化对象的成员变量,确保对象在创建时就已经处于一个有效状态。
3. 重载:可以在同一个类中定义多个非默认构造函数,只要它们的参数列表不同即可,这称为构造函数重载。
4. 继承:在继承关系中,子类可以重写基类的构造函数,也可以定义自己的构造函数。如果子类没有定义构造函数,编译器会自动调用基类的默认构造函数。
以下是一个简单的例子:
```cpp
class MyClass {
public:
int x;
double y;
// 默认构造函数
MyClass() : x(0), y(0.0) {