C++构造函数默认值头文件

标签 c++ class constructor default-value

我正在尝试创建一个具有默认值的构造函数。复杂性来自于为该类使用单独的头文件和代码文件。我有一个头文件,其中包含:

class foo {
    bool dbg;
    public:
        foo(bool debug = false);
}

还有一个代码文件包含:

foo::foo(bool debug = false) {
    dbg = debug;
}

当我尝试使用 g++ 进行编译时(即 g++ -c foo.cc),它给出了一个错误:

foo.cc:373:65: error: default argument given for parameter 1 of ‘foo::foo(bool)’
foo.h:66:4: error: after previous specification in ‘foo::foo(bool)’

我做错了什么?

最佳答案

默认只能放在头文件中。根据我的经验,在构造函数(或其他函数)中使用默认值很少是一个好主意——它通常在某个地方有点困惑。更不用说我自己的代码中没有几个!

关于C++构造函数默认值头文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6162417/

相关文章:

c++ - 绑定(bind)到枚举的类成员

java - 嵌套循环模式不起作用

javascript - 向所有 Angular 模型添加子类

c++ - 在没有类实例的情况下调用 C++ 类方法?

java - 使用枚举选择内部实现

php - php抽象类中的构造函数有什么用

c# - WPF 中的命令,实现问题

c++ - 在 AST 中解析节点和它们自己的(无限数量的嵌套)子节点

c++ - Opencv 链接 CMAKE 不工作 Ubuntu 16.04 Docker

c++ - 创建和管理查找容器的正确方法