为什么我的extern const double与double函数参数不兼容,但是我的extern const int与int函数参数兼容?

时间:2017-08-10 20:02:04

标签: c++ c++11 parameters extern

我在一个单独的.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.

为什么它适用于整数但不适用于双打?

1 个答案:

答案 0 :(得分:2)

没关系,在仔细检查我的代码后,我发现我不小心留在了头文件的一些括号中,所以它说" extern const double d_const()",显然它不应该&# 39;吨。删除这些括号修复了问题。我无法相信我错过了,尽管反复检查语法,但你去了。谢谢你的答案!