jc567.cn
| class Fred { public: // ... }; #if 0 // 没有算符重载: Fred add(Fred, Fred); Fred mul(Fred, Fred); Fred f(Fred a, Fred b, Fred c) { return add(add(mul(a,b), mul(b,c)), mul(c,a)); // 哈哈,多可笑... } #else // 有算符重载: Fred operator (Fred, Fred); Fred operator* (Fred, Fred); Fred f(Fred a, Fred b, Fred c) { return a*b b*c c*a; 复制于hot007.com } #endif |
jc567.cn
| #include <iostream.h> class complex { public: complex() { real=imag=0; } complex(double r, double i) { real = r, imag = i; } complex operator (const complex &c); complex operator -(const complex &c); complex operator *(const complex &c); complex operator /(const complex &c); friend void print(const complex &c); private: double real, imag; }; inline complex complex::operator (const complex &c) { return complex(real c.real, imag c.imag); 文章来源于www.jc567.cn } inline complex complex::operator -(const complex &c) { return complex(real - c.real, imag - c.imag); } inline complex complex::operator *(const complex &c) { return complex(real * c.real - imag * c.imag, real * c.imag imag * c.real); } inline complex complex::operator /(const complex &c) { return complex((real * c.real imag c.imag) / (c.real * c.real c.imag * c.imag), (imag * c.real - real * c.imag) / (c.real * c.real c.imag * c.imag)); } void print(const complex &c) { if(c.imag<0) cout<<c.real<<c.imag<<'i'; else cout<<c.real<<' '<<c.imag<<'i'; } void main() { complex c1(2.0, 3.0), c2(4.0, -2.0), c3; c3 = c1 c2; cout<<"\nc1 c2="; print(c3); c3 = c1 - c2; cout<<"\nc1-c2="; print(c3); c3 = c1 * c2; cout<<"\nc1*c2="; print(c3); c3 = c1 / c2; cout<<"\nc1/c2="; 复制于jc567.cn print(c3); c3 = (c1 c2) * (c1-c2) * c2/c1; cout<<"\n(c1 c2)*(c1-c2)*c2/c1="; print(c3); cout<<endl; } |
| c1 c2=6 1i c1-c2=-2 5i c1*c2=14 8i c1/c2=0.45 0.8i (c1 c2)*(c1-c2)*c2/c1=9.61538 25.2308i |
| #include <iostream.h> class complex { public: complex() { real=imag=0; } complex(double r, double i) { real = r, imag = i; } friend complex operator (const complex &c1, const complex &c2); friend complex operator -(const complex &c1, const complex &c2); friend complex operator *(const complex &c1, const complex &c2); 复制于hot007.com friend complex operator /(const complex &c1, const complex &c2); friend void print(const complex &c); private: double real, imag; }; complex operator (const complex &c1, const complex &c2) { return complex(c1.real c2.real, c1.imag c2.imag); } complex operator -(const complex &c1, const complex &c2) { return complex(c1.real - c2.real, c1.imag - c2.imag); } complex operator *(const complex &c1, const complex &c2) { return complex(c1.real * c2.real - c1.imag * c2.imag, c1.real * c2.imag c1.imag * c2.real); } complex operator /(const complex &c1, const complex &c2) { return complex((c1.real * c2.real c1.imag c2.imag) / (c2.real * c2.real c2.imag * c2.imag), (c1.imag * c2.real - c1.real * c2.imag) / (c2.real * c2.real c2.imag * c2.imag)); } void print(const complex &c) { if(c.imag<0) cout<<c.real<<c.imag<<'i'; www.hot007.com else cout<<c.real<<' '<<c.imag<<'i'; } void main() { complex c1(2.0, 3.0), c2(4.0, -2.0), c3; c3 = c1 c2; cout<<"\nc1 c2="; print(c3); c3 = c1 - c2; cout<<"\nc1-c2="; print(c3); c3 = c1 * c2; cout<<"\nc1*c2="; print(c3); c3 = c1 / c2; cout<<"\nc1/c2="; print(c3); c3 = (c1 c2) * (c1-c2) * c2/c1; cout<<"\n(c1 c2)*(c1-c2)*c2/c1="; print(c3); cout<<endl; } |