我刚刚从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
答案 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
的整个定义。