构造函数只初始化没有实际意义的成员变量。需要初始化的数据在 init() 方法中集中初始化。
定义: 在构造函数中执行初始化操作
优点: 排版方便,无需担心类是否初始化
结论:
nullptr
,或将变量设置为默认值。init()
方法中:执行所有需要初始化的操作,如资源分配、依赖注入等。bool initialized
)来标记对象是否已经成功初始化。class MyClass {
public:
MyClass() : initialized(false) {
// 构造函数中只进行基本的初始化
}
bool init() {
// 执行复杂的初始化逻辑
if (complexInitialization()) {
initialized = true;
return true;
}
return false;
}
bool isInitialized() const {
return initialized;
}
private:
bool initialized;
bool complexInitialization() {
// 资源分配、依赖注入等操作
// 返回初始化是否成功
}
};