C++ コードの 2 つのバージョンがあります。1つは問題を与え、もう1つは与えません:
/*
* This compiles fine
*/
class base {
private:
const char c;
};
int main() {
base b(); // compiles fine
}
/* * これによりコンパイル エラーが発生します */
class base {
private:
const char c;
};
int main() {
base b; // error: structure 'b' with uninitialized const members
}
違いは「base b()」と「base b」であることに注意してください。どちらもデフォルトのコンストラクターを呼び出し、クラスには const フィールドがあるため、プログラムはコンパイルに失敗すると思いました。これを説明するのを手伝ってください。