当前位置: 首页 > 科技观察

十分钟理解C++中的运算符重载

时间:2023-03-13 14:11:42 科技观察

在C++中,我们可以让运算符为用户定义的类工作。这意味着C++有能力赋予运算符特殊的数据类型含义,这种能力称为运算符重载。例如,我们可以在类似String的类中重载运算符“+”,这样我们就可以仅使用+连接两个字符串。算术运算符可能被重载的其他示例类是复数、小数、大整数等。一个简单而完整的示例#includeusingnamespacestd;classComplex{private:intreal,imag;public:Complex(intr=0,inti=0){real=r;imag=i;}Complexoperator+(Complexconst&obj){Complexres;res.real=real+obj.real;res.imag=imag+obj.imag;returnres;}voidprint(){cout<usingnamespacestd;classComplex{private:intreal,imag;public:Complex(intr=0,inti=0){real=r;imag=i;}voidprint(){cout<usingnamespacestd;classFraction{intnum,den;public:Fraction(intn,intd){num=n;den=d;}operatorfloat()const{returnfloat(num)/float(den);}};intmain(){Fractionf(2,5);floatval=f;cout<usingnamespacestd;classPoint{private:intx,y;public:Point(inti=0,intj=0){x=i;y=j;}voidprint(){cout<