我在一个单独的.cpp文件中定义了一组常量,并通过标题包含在main中。一个常量是const double,另一个是const int。在main中,我有一个函数,它接受两个双精度作为参数,另一个取两个整数。当我将整数常量传递给整数函数时,它工作正常,但是当我尝试将双常量传递给double函数时,它会导致一个错误:'参数类型“const double(*)()”是与“double”'类型的参数不兼容。
Constants.cpp
namespace Constants
{
extern const double d_const(100.0);
extern const int i_const(20);
}
Constants.h
namespace Constants
{
extern const double d_const;
extern const int i_const;
}
的main.cpp
#include "Constants.h"
double d_function(double parameter_1, double parameter_2)
{
// Function body
}
int i_function(int parameter_1, int parameter_2)
{
// Function body
}
i_function(0, Constants::i_const); // Works.
d_function(0.0, Constants::d_const); // Error.
为什么它适用于整数但不适用于双打?
答案 0 :(得分:2)
没关系,在仔细检查我的代码后,我发现我不小心留在了头文件的一些括号中,所以它说" extern const double d_const()",显然它不应该&# 39;吨。删除这些括号修复了问题。我无法相信我错过了,尽管反复检查语法,但你去了。谢谢你的答案!