*/
Love this site? Hate it? Leave us some comments.
*/

View \#3_VER3.CPP

Some Introductory C++ Code Examples

Submitted By: WEBMASTER
Rating: starhalf star (Rate It)


#include <stream.hxx>

class complex {
        double re, im;
  public:
        complex (double r = 1., double i = 1.) : re(r), im(i) {}
        void operator += ( complex );
        void print() { cout << form("(%5.3f, %5.3f)\n", re, im); }
       
        friend complex operator + ( complex, complex );
        friend complex operator * ( complex, complex );
        friend int     operator ==( complex, complex );
};

complex operator +( complex a, complex b ) {
                return complex ( a.re + b.re, a.im + b.im );
}

complex operator *( complex a, complex b ) {
                return complex ( a.re * b.re - a.im * b.im,
                                 a.re * b.im +  a.im * b.re );
}

int operator == ( complex a, complex b) {
        return ( a.re == b.re && a.im == b.im );
}

void complex::operator += ( complex a ) {
        re += a.re;
        im += a.im;
}

main() {
        const complex num1 (1, 0);      //num1 = (1.000, 0.000)
        complex num2 = 1.;            //num2 = (1.000, 1.000)
        complex num3 (3., 8.);    //num3 = (3.000, 8.000)
        complex num4;         //num4 = (1.000, 1.000)
        complex num5 = (4, 5);    //num5 = (5.000, 1.000) caution!
        complex num6 = (5, 6, 7, 8, 9); //num6 = (9.000, 1.000) caution!
        complex num7 = complex(5, 5);   //num7 = (5.000, 5.000)
        complex num8 = (num3, num1);    //num8 = (1.000, 0.000)
        double x = 1., y = 5., z = 3.;

        num4 += (num1 == num2? num3 : num1) + x * y + 1. / z;

        num4.print();   //prints out  (7.333, 3.000)
        num5.print();   //prints out  (5.000, 1.000)
        num6.print();   //prints out  (9.000, 1.000)
        num7.print();   //prints out  (5.000, 5.000)
        num8.print();   //prints out  (1.000, 0.000)
}

/* output:

(7.333, 3.000)
(5.000, 1.000)
(9.000, 1.000)
(5.000, 5.000)
(1.000, 0.000)

 */

corner
© 1996-2008 CommunityHeaven LLC. All rights reserved. Reproduction in whole or in part, in any form or medium without express written permission is prohibited.
Violators of this policy may be subject to legal action. Please read our Terms Of Use and Privacy Statement for more information.
North American business development: Nicolai Wadstrom. Publisher: Lars Hagelin.