C++函数 - 错误:'0'不能用作函数
C++ Functions - Error: '0' cannot be used as a function
我是函数的新手,正在努力理解我做错了什么。我的构建消息显示了错误:"0"不能用作函数,并突出显示了函数中的行return ((5 / 9)(fahrenheit - 32));
。提前谢谢你的建议。
#include <iostream>
using namespace std;
double celsiusFunction(double fahrenheit);
int main()
{
double fahrenheitTemp;
fahrenheitTemp = celsiusFunction(99);
cout << fahrenheitTemp;
return 0;
}
double celsiusFunction(double fahrenheit)
{
return ((5 / 9)(fahrenheit - 32));
}
-
5 / 9
是0
,因为两者都是整数,因此它是用整数算术计算的。改为执行以下操作:5.0 / 9.0
以获得浮动结果。 -
您在
return
语句中没有相乘,因此编译器将第二个括号解释为函数调用(即,使用参数fahrenheit - 32
调用5 / 9
)。这当然是无稽之谈。这样做:return (5.0 / 9.0) * (fahrenheit - 32.0);
((5 / 9)(fahrenheit - 32))
_____/_______________/
1 2
2被解释为对1的函数调用。你忘了乘法:
((5 / 9) * (fahrenheit - 32))
您忘记了*
运算符
您应该将return ((5 / 9)(fahrenheit - 32));
更改为
return ((5 / 9)*(fahrenheit - 32));
在(5/9)
之后添加*
。由于缺少*
,您将收到错误。
相关文章:
- 递归模板化函数不能分配给具有常量限定类型"const tt &"的变量"state"
- 为什么虚函数不能是静态的和全局的?
- 为什么继承的受保护构造函数不能公开?
- C++为什么类成员函数不能重新声明,但普通函数可以
- 为什么在C++中使用关系运算符创建的模板函数不能对字符串正常工作?
- 成员函数不能为集合迭代器和const_iterator的输入重载(但可以为其他 STL 迭代器重载)
- 为什么模板函数不能作为模板模板参数传递?
- 为什么 free 函数不能在 C 数组上运行,而 std::begin 在某些情况下可以在 C++14 中运行?
- 构造函数不能用于启发性化
- C 错误 - 函数不能超载
- 有没有办法使成员函数不能从构造函数调用
- 为什么模板函数不能是模板类的友元模板函数
- "Framework::Graphics::Material"的默认构造函数不能被引用 - 它是一个已删除的函数
- lower_bound()函数不能在调试模式下编译
- 为什么函数不能正确强制转换指针(从基类到派生类)
- 显式默认函数不能声明为 constexpr,因为隐式声明不是 constexpr
- 琐碎的默认构造函数不能是 constexpr?
- 函数不能嵌套,那么如何在C++中执行此操作
- 错误:成员函数不能在其类之外声明
- 错误-仅返回类型不同的函数不能重载.c++