我有两个版本的 C++ 代码。一个给出问题,另一个没有:
/*
* 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 字段,因此程序将无法编译。请帮忙解释一下。