可能重复:
Constructors with default parameters in Header files
Default value of function parameter
ERROR:
**** Internal Builder is used for build ****
g++ -O0 -g3 -Wall -c -fmessage-length=0 -o src\Calculator.o ..\src\Calculator.cpp
..\src\Calculator.cpp:26:55: error: default argument given for parameter 1 of 'CComplex::CComplex(float, float)'
..\src\/Calculator.h:25:9: error: after previous specification in 'CComplex::CComplex(float, float)'
..\src\Calculator.cpp:26:55: error: default argument given for parameter 2 of 'CComplex::CComplex(float, float)'
..\src\/Calculator.h:25:9: error: after previous specification in 'CComplex::CComplex(float, float)'
Build error occurred, build is stopped
Time consumed: 563 ms.
有没有人遇到过类似的问题。什么可以解决?
答案 0 :(得分:1)
你在函数定义中使用默认参数做错了。
class {
void CComplex(float a=0.0, floatb=0.0);
};
如果你有这样的功能定义,那就错了:
void CComplex::CComplex(float a=0.0, floatb=0.0)
{
}
它应该是:
void CComplex(float a, float)
{
}
然后
call CComplex(); `a,b` will be default to `0.0`
call CComplex(1.0); will set a to a 1.0 and b to 0.0
call CComplex(1.0, 2.0); will set a to 1. and b to 2.0
答案 1 :(得分:1)
您需要在函数声明中声明函数参数的默认值(通常在头文件中),而不是定义(通常是cpp文件)。所以在你的情况下,代码看起来应该是这样的:
<。>文件中的
CComplex(float r=0.0, float i=0.0);
在.cpp文件中
CComplex::CComplex(float r, float i)
{
// ...
}