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