小编Arv*_*yal的帖子

const 成员和默认构造函数错误

我有两个版本的 C++ 代码。一个给出了问题,另一个则没有:

/*
 * This compiles fine
 */
class base {
    private:
         const char c;
    };

int main() {
    base b(); // compiles fine
}
Run Code Online (Sandbox Code Playgroud)

/* * 这会产生编译错误 */

class base {
    private:
         const char c;
    };

int main() {
    base b; // error: structure 'b' with uninitialized const members

}
Run Code Online (Sandbox Code Playgroud)

请注意,区别在于“base b()”和“base b”。我认为两者都会调用默认构造函数,并且由于该类有一个 const 字段,因此程序将无法编译。请帮忙解释一下这一点。

c++ default-constructor

2
推荐指数
1
解决办法
869
查看次数

标签 统计

c++ ×1

default-constructor ×1