6: //***********************************************************
Transkrypt
6: //***********************************************************
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: #include <iostream> #include <ostream> #include <cmath> using namespace std; //************************************************************************** //Klasa liczb zespolonych class zespolona { public: public //dane double real; double imag; //konstruktor zespolona(); zespolona(double double re, double im); //metody double mod(); void print(); //operatory zespolona operator operator=(zespolona z); zespolona operator+(zespolona operator z); //operator << dla strumieniowego wyjscia friend ostream& operator<<(ostream& operator wy, const zespolona& z); }; //************************************************************************** //konstruktor inicjujący dane zerami zespolona::zespolona() { real = 0; imag = 0; } //konstruktor inicjujący dane podanymi wartosciami zespolona::zespolona(double double re, double im) { real = re; imag = im; } //modul liczby zespolonej double zespolona::mod() { return sqrt(real*real+imag*imag); } //wypisanie liczby na cout void zespolona::print() { cout << "(" << real << (imag<0?"-j":"+j") << abs(imag) << ")"; } //w tym przykladzie nie ma potrzeby przeciazania operatora = (przyklad) zespolona zespolona::operator operator=(zespolona z) operator { real = z.real; imag = z.imag; return *this this; this } //przeciazony operator dodawania zespolona zespolona::operator operator+(zespolona z) operator { zespolona tmp; tmp.real = real + z.real; tmp.imag = imag + z.imag; return tmp; } 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: //przeciazony operator << dla strumieniowego wyjscia ostream& operator << (ostream &wy, const zespolona& z) { wy << "(" << z.real << (z.imag<0?"-j":"+j") << abs(z.imag) << ")"; return wy; } //************************************************************************** int main() { //deklaracja obiektow zainicjowanych zespolona a(2,3), b(3,-4); zespolona c; //wypisanie metoda print cout << "a = "; a.print(); cout << endl; //dodawanie c=a+b; //wypisanie strumieniowe za pomoca cout cout << a << " + " << b << " = " << c << endl; system("pause"); return 0; }