C++ 类,需要帮助

C++ classes, help needed

我是 C++ 的新手,正在尝试理解与 OpenCV 相关的代码。它有一个 class 如下:

class Settings
{
public:
    Settings() : goodInput(false) {}
    enum Pattern { NOT_EXISTING, CHESSBOARD, CIRCLES_GRID, ASYMMETRIC_CIRCLES_GRID };
    enum InputType { INVALID, CAMERA, VIDEO_FILE, IMAGE_LIST };
.
.
.
.
}

这里的Settings() : goodInput(false) {}是什么意思。我不认为它是一个构造函数。请解释一下。

确实是构造函数。您在 : 之后看到的内容称为 initializer-list,它会在输入大括号之前初始化值。

你还应该知道,class的成员变量总是在进入构造函数体之前被初始化。如果你没有在初始化列表中提到一个成员变量,它将被默认初始化。

它将(默认)初始值false分配给成员(可能)检查输入的有效性。