0

当使用参数定义另一个构造函数时,是否会自动调用默认构造函数,或者我是否必须使用 : objectName() 来限定它,如下所示:

Class TextFileParse {
public:
    TextFileParse() = default;
    TextFileParse( wstring fileName ) : TextFileParse()
    {
        Load( fileName );
    }
};

如果我定义构造函数而不是默认构造函数并且它初始化并调用其他方法,那么我是否必须限定它?我正在使用两种代码库,但不确定每个代码库的行为方式(静态 .lib,我只有要跟踪的标头)。谢谢

4

1 回答 1

2

当使用参数定义另一个构造函数时,是否会自动调用默认构造函数?

不,他们不是。

如果我定义构造函数而不是默认构造函数并且它初始化并调用其他方法,那么我是否必须限定它?

是的,如果你想使用另一个构造函数的功能,你需要使用委托构造函数。

作为一般规则,没有构造函数会自动调用其他构造函数。您需要使用委托构造函数(自C++11起)或将通用逻辑移动到从多个构造函数调用的单独方法中。

于 2018-01-15T20:25:22.053 回答