【问题标题】:cout << function(); undefined reference. issues with a functioncout << 函数();未定义参考。功能问题
【发布时间】:2020-10-18 15:25:21
【问题描述】:
 #include 
    使用命名空间标准;
    
    //定义函数
    双倍距离(双倍,双倍);
    int main() {
      
        //我认为我有问题的地方
        cout 

ma​​in.cpp:9:11: 错误:没有匹配函数调用“距离” cout

这是我尝试运行它时得到的。我知道这是非常初级的,但我想在继续之前了解我做错了什么

【问题讨论】:

  • 你需要在你的调用中给函数两个参数;比如说,cout &lt;&lt; distance(5.0, 10.0);
  • @Unslander Monica 我不知道?也许我是一个了解最少的初学者?我知道的疯狂概念。

标签: c++


【解决方案1】:

您应该将参数传递给函数,因为您已定义为:double distance(double, double);

所以,解决办法是:

#include <iostream>
using namespace std;    

double distance(double, double);

int main() 
{
   cout << distance(10, 10);
   return 0;
}

double distance(double rate, double time)
{
   return time * rate;
}

此外,最好在 C++ 标准库的所有内容之前使用 std::,而不是在代码顶部键入 using namespace std;

阅读更多:Why is "using namespace std;" considered bad practice?

【讨论】:

  • 这里值得一提的是,难以阅读的错误消息部分归咎于使用命名空间std;,因为有一个函数std::distance,它不小心被拉到了这里。 using namespace std 被认为是邪恶的,这是有原因的。
  • 谢谢,我知道这很简单,但我很高兴你能抽出时间!
  • @Srick 是的。最好使用std:: 而不是顶部的整个命名空间。
  • @Dawid 也许在你的答案中包含这个?这有点重要。
【解决方案2】:

至少在调用函数时传递参数,因为你的函数需要参数

【讨论】:

    猜你喜欢
    • 2011-10-30
    • 2012-01-10
    • 1970-01-01
    • 1970-01-01
    • 2013-11-25
    • 1970-01-01
    • 2018-10-18
    • 2014-07-25
    • 2012-05-22
    相关资源
    最近更新 更多