A oto kod
Kod: Zaznacz cały
#include <iostream.h>
#include <conio.h>
class Prostokat {
friend Prostokat operator*(Prostokat a, Prostokat b); //operator * umozliwiajacy mnozenie pol obiektow uzywajac "nazw/wskaznikow" obiektow
friend Prostokat operator/(Prostokat a, Prostokat b); //operator / umozliwiajacy dzielenie pol obiektow uzywajac "nazw/wskaznikow" obiektow
protected:
float pole;
float x, y;
public:
virtual float poleProstokata () {return pole = (x*y);}
Prostokat () {} //konstruktor obiektu bez param.
Prostokat (float, float); //konstruktor obiektu z zadanymi param.
~Prostokat() { } //destruktor obiektu
float PoleP() { return Prostokat: :p ole; } //funkcj zwracjaca pole obiektu.
};
Prostokat::Prostokat (float a, float b)
{
x = a;
y = b;
}
//***************************OPERATOR * *************************************/
Prostokat operator* (Prostokat a, Prostokat b)
{
Prostokat c;
c.pole = a.pole * b.pole;
return c;
}
//***************************OPERATOR / **************************************/
Prostokat operator/ (Prostokat a, Prostokat b)
{
Prostokat c;
c.pole = a.pole / b.pole;
return c;
}
class Krzyzyk1 :p ublic Prostokat {
public:
virtual float poleKrzyzyka1 () { return pole = ((2*(x*y))-(y*y)); }
Krzyzyk1() ;
Krzyzyk1(float, float);
};
Krzyzyk1::Krzyzyk1 (float a, float b)
{
x = a;
y = b;
}
class Krzyzyk2 :p ublic Prostokat{
public:
virtual float poleKrzyzyka2 () { return pole = ( (4*(x*y))-(4*(y*y)) ); }
Krzyzyk2 ();
Krzyzyk2 (float, float);
};
Krzyzyk2::Krzyzyk2 (float a, float b)
{
x = a;
y = b;
}
//***********************************MAIN***********************************//
main ()
{
Prostokat *a = new Prostokat (2, 1);
Prostokat *b = new Prostokat(4, 2);
Krzyzyk1 *c = new Krzyzyk1 (2, 1);
Krzyzyk1 *d = new Krzyzyk1 (4, 2);
Krzyzyk2 *e = new Krzyzyk2 (2, 1);
Krzyzyk2 *f = new Krzyzyk2 (4, 2);
cout << "Pole prostokata 'a' wynosi : " << a->poleProstokata() << endl;
cout << "Pole prostokata 'b' wynosi : " << b->poleProstokata() << endl;
cout << "Pole krzyzyka (+) 'c' wynosi : " << c->poleKrzyzyka1() << endl;
cout << "Pole krzyzyka (+) 'd' wynosi : " << d->poleKrzyzyka1() << endl;
cout << "Pole krzyzyka (#) 'e' wynosi : " << e->poleKrzyzyka2() << endl;
cout << "Pole krzyzyka (#) 'f' wynosi : " << f->poleKrzyzyka2() << endl;
cout << "\nIloczyn pol prostokatow : 'a' i 'b' = "
<< (*a * *b).PoleP() << endl;
cout << "\nIloraz pol prostokata 'b' i krzyzyka(+) 'c' = "
<< (*b / *c).PoleP() << endl;
cout << "\nIloczyn pol krzyzykow(+): 'c' i 'd' = "
<< (*c * *d).PoleP() << endl;
cout << "\nIloczyn pol krzyzyka(+) 'd' i krzyzyka(#) 'e' = "
<< (*d * *e).PoleP() <<endl;
cout << "\nIloczyn pol prostokat 'a' i krzyzyka(#) 'e' "
<< (*a * *e).PoleP() <<endl;
delete a;
delete b;
delete c;
delete d;
delete e;
delete f;
cout << "\nNacisnij dowolny przycisk..." << endl;
getchar();
}