新手,请教教材上的问题 在线等待...
#include <iostream.h>
#include <math.h>
class complex {
double real, imag;
public:
complex( double r ) { real = r; imag = 0; }
void assign( double r, double i ) { real = r; imag = i; }
void print() { cout << real << "+" << imag << "i"; }
};
inline int greater( int i, int j ) { return( i > j ? i : j ); }
inline double greater( double x, double y ) { return ( x > y ? x : y ); }
inline complex greater ( complex w, complex z ) { return( w > z ? w : z ); }
如上面。。。。vc6编译的时候提示: error C2676: binary '>' : 'class complex' does not define this operator or a conversion to a type acceptable to the predefined operator
请问高手:是类不能定义还是转换出了错
问题点数:20、回复次数:10Top
1 楼yanddan(索尔)回复于 2005-08-03 06:09:06 得分 4
你还没学过运算符重载吧,">"怎么能拿来比较有多个私有变量的对象呢
就好比我家和你家比,但是到底是比较什么呢?是比钱多还是人多还是其他的,编译器可没那么聪明Top
2 楼nirendao(雷老虎)回复于 2005-08-03 06:58:12 得分 1
重载一下运算符
Top
3 楼foochow(无聊,灌水......)回复于 2005-08-03 08:21:59 得分 2
重载>
friend bool operator>(const complex&lhs,const complex&rhs);
Top
4 楼xiao_xiao_zi(笑小子)回复于 2005-08-03 08:46:07 得分 1
怎么重载运算符怎么能直接return( w > z ? w : z );
编译器也不知道你要怎么比较啊Top
5 楼qfeng_zhao(鱼儿鱼儿满天飞)回复于 2005-08-03 08:50:13 得分 1
重载运算符>
定义你自己的比较方式Top
6 楼zhuying1983(竹影)回复于 2005-08-03 09:24:28 得分 8
Complex是自定义的类型,用>的运算符要重载?
在成员函数中加上一个函数
bool operator >(complex& r)
不过复数比较大小的意义是什么呢?难道是比较模的大小?Top
7 楼BillSmith(睡教觉主)回复于 2005-08-03 09:33:05 得分 1
复数怎么能比大小啊?基本的数学概念错误。Top
8 楼yztommyhc(老六)回复于 2005-08-03 09:49:56 得分 1
就好比我家和你家比,但是到底是比较什么呢?是比钱多还是人多还是其他的,编译器可没那么聪明.
精妙的比喻啊。
Top
9 楼jlkzzh(一阵风)回复于 2005-08-03 10:35:47 得分 1
运算符重载》Top
10 楼xrayshow(Shekinah)回复于 2005-08-04 01:04:12 得分 0
谢谢大家! 呵呵,这是书上的题目。。。我再修复下Top




