问一个低级的inline问题:

nj_liuzl 2010-09-23 10:34:21
#include <iostream>
using namespace std;
class rational{
public:
rational(int n = 0):a(0), q(1){}
rational(int i, int j):a(i),q(j){}
rational(double r):a(static_cast<long>(r*BIG)),q(BIG){}
void print()const{
cout << a << "/" << q;
}
operator double(){
return static_cast<double>(a) / q;
}
private:
long a, q;
enum {BIG = 100};
};

inline int greater(int i , int j){
return i > j ? i:j;
}

double greater(double x, double y){
return x > y ? x:y;
}

rational greater(rational w, rational z){
return w>z?w:z;
}

int main(){
int i = 10, j = 5;
float x = 7.0;

double y = 14.5;

rational w(10), z(3.5), zmax;

cout << "\ngreater(" << i << "," << j << ")=" << greater(i,j);

}


这段代码,为什么编译的时候会出现:
`greater' undeclared (first use this function)
(Each undeclared identifier is reported only once for each function it appears in.)

错误啊~~
...全文
106 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
pengzhixi 2010-09-23
  • 打赏
  • 举报
回复
改名字就可以了。
delphiwcdj 2010-09-23
  • 打赏
  • 举报
回复
直接放在class里面
十八道胡同 2010-09-23
  • 打赏
  • 举报
回复
#include <iostream>
using namespace std;
class rational{
public:
rational(int n = 0):a(0), q(1){}
rational(int i, int j):a(i),q(j){}
rational(double r):a(static_cast<long>(r*BIG)),q(BIG){}
void print()const{
cout << a << "/" << q;
}
operator double(){
return static_cast<double>(a) / q;
}
private:
long a, q;
enum {BIG = 100};
};

inline int great(int i , int j){
return i > j ? i:j;
}

double great(double x, double y){
return x > y ? x:y;
}

rational great(rational w, rational z){
return w>z?w:z;
}

int main(){
int i = 10, j = 5;
float x = 7.0;

double y = 14.5;

rational w(10), z(3.5), zmax;

cout << "\ngreater(" << i << "," << j << ")="
<< great(i , j);

}
十八道胡同 2010-09-23
  • 打赏
  • 举报
回复
你的greater和std里面的greater冲突了,你要改你的函数的名字
Csuxiaowu 2010-09-23
  • 打赏
  • 举报
回复
rational greater(rational w, rational z){
return w>z?w:z;
}

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧