编译简单的C ++应用程序时出错

时间:2017-09-11 12:11:19

标签: c++ function compiler-errors calculator

我有一个非常语法正确且非常简单的应用程序,它从用户获取两个整数并进行减法和添加它们。但是当我尝试编译程序时,我收到了这个错误:

  

找不到' C:\ Users \ MyUsername \ source \ repos \ SimpleCalculator \ SimpleCalculator \ Debug \ SimpleCalculator.obj'。 SimpleCalculator.exe是使用/ DEBUG:FASTLINK构建的,它需要对象文件进行调试。

这是我的代码:

#include "stdafx.h"
#include <iostream>
using namespace std;

void main()
{
int a, b;
cout << "Welcome." << endl;

cout << "Enter first number: ";
cin >> a;
cout << "Enter second number: ";
cin >> b;

cout << "A+B is: ";
cout << addition(a,b) << endl;

cout << "A-B is: ";
cout << substraction(a,b) << endl;

system("pause");

}

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

int substraction(int a, int b) {
    return a - b;
}

此错误仅在我有功能时发生。当我的代码如下:

cout << "A+B is: ";
cout << a+b << endl;

没有错误。

4 个答案:

答案 0 :(得分:4)

您需要在调用函数之前声明函数,因此您基本上有两个选项:

main

之前声明它们
int addition(int a, int b);
int substraction(int a, int b);

或在main前面移动它们的整个定义。

答案 1 :(得分:1)

在使用之前声明函数,如下所示:

int addition(int a, int b);
int substraction(int a, int b);

你会没事的。

或者,在 main()之前移动函数的定义(实现),

PS:What should main() return in C and C++? int,而非void

答案 2 :(得分:0)

C ++编译器从上到下读取您的代码。在声明之前,它不知道addition的存在 - 在声明是错误之前尝试使用它。

要修复编译器错误,请将additionsubstraction的定义移到main之上。

答案 3 :(得分:0)

在C ++(和C99,C11但不是旧的C标准)中,必须先声明函数才能使用它们。这应该与定义相同,但没有正文({}),就像在头文件中找到的一样。

int addition(int a, int b);
int substraction(int a, int b);
void main()
{
    ...