"使用未声明的标识符" - 代码有什么问题?

时间:2015-11-05 11:54:02

标签: c++ xcode

我刚刚从Java切换到C ++,所以有人可以解释这段代码有什么问题:

#include "x.hpp"
#include <iostream>
using namespace std;

int min(int a,int b,int c){
 return minimum(minimum(a,b),c);
}

int minimum(int a,int b){
  if(a<b) return a;
  return b;
}

int main()
{
  cout<<min(1,2,3)<<"\n";
  return 0;
}

编译器说minimum未声明。但为什么呢?

P.S。我的IDE是Xcode

2 个答案:

答案 0 :(得分:2)

minimum需要在通话时声明。

您可以将minimum的定义移到min以上:

int minimum(int a,int b){
  if(a<b) return a;
  return b;
}

int min(int a,int b,int c){
  return minimum(minimum(a,b),c);
}

或者你可以forward-declare minimum

int minimum(int a,int b);

int min(int a,int b,int c){
  return minimum(minimum(a,b),c);
}

int minimum(int a,int b){
  if(a<b) return a;
  return b;
}

答案 1 :(得分:1)

您在声明之前使用minimum

要在min中使用之前声明它,您可以在min之前添加此内容:

int minimum(int a, int b);

这是声明

您还可以在minimum之前移动min的整个定义