【问题标题】:Cannot compile the simplest C++ code [duplicate]无法编译最简单的 C++ 代码 [重复]
【发布时间】:2015-08-15 23:34:38
【问题描述】:

我正在尝试编译这段代码,但我遇到了一个错误:

#include <iostream>

main(){

    std::cout << add(5, 6);
}

int add(int a, int b){
    return a+b;
}

我收到以下错误:

error: 'add' was not declared in this scope
  std::cout << add(5, 6);

【问题讨论】:

  • 必须提前声明
  • @instructionSetQuestion 此外,函数需要返回类型。函数是int main(),而不仅仅是main()
  • 伴侣。您无法从 Stack Overflow cmets 线程学习 C++。我们不会在这里进行聊天室风格的讨论,一次一个地教你语言的每一个细节。来,读这个! stackoverflow.com/questions/388242/… 祝你好运。
  • @instructionSetQuestion C++ 是最常用的语言之一。特别是对于像视频游戏行业这样的东西。此外,ios 开发目前是在 Objective C 中完成的(尽管这可能会在不久的将来变为 swift),并且 Objective C 与 C++ 有许多相似之处。所以你可以停止学习,但要知道当你停止学习时这些概念可能不会消失哈哈
  • 现在网络/应用程序编程很受欢迎。 C++ 用于游戏/核心开发

标签: c++ compilation


【解决方案1】:

main() 之前的地方:

int add(int a, int b);

通常一个函数接口放在头文件中,然后包含。

【讨论】:

  • 哇,所以函数看不到它们下面的其他函数?这有点糟糕,他们为什么不修复它。这里是java开发人员。
  • @instructionSetQuestion:它并不“糟糕”,真的。原因很复杂,而且效果很好。
  • @instructionSetQuestion Java 中的所有函数都在一个类中。如果您将这些函数定义为成员函数,您会发现 C++ 确实看到了“在它们之下”的函数。你所拥有的是全局的、非类的函数,Java AFAIK 中不存在的东西。为此,您必须在调用函数之前声明函数原型(或必须出现函数的整个主体)。如果你想“修复”这个问题,那么学习 C 编程,你可以在不声明函数的情况下调用函数(并且失去原型检查)。
  • 我们在 java 中有它,我认为它是“扩展”
  • 投反对票,和头文件完全没有关系。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-10
相关资源
最近更新 更多