Documente Academic
Documente Profesional
Documente Cultură
obiecte
C++
#7 Proprietati ale mecanismului de
mostenire
Adrian Runceanu
www.runceanu.ro/adrian
2016
copyright@www.adrian.runceanu.ro
Diagrama UML
1. Clasa Punct Punct
(#) double fi, teta, ro;
(+) double x,y,z;
(+) punct()
(+) punct (double fic, double tetac, double roc)
(+) ~punct()
(+) void cartezian()
(+) void afisare_coordonate_polare()
(+) void afisare_coordonate_carteziene()
friend class Segment
Diagrama UML
2. Clasa Segment
Segment
(-) double d;
Punct P1;
Punct P2;
(+) segment(double f1, double teta1, double ro1, double
f2, double teta2, double ro2) : P1(fi1, teta1, ro1), P2(fi2,
teta2, ro2)
(+) ~segment()
(+) void distanta()
(+) void afisare_segment()
23.11.2016 P.O.O. - limbajul C++ (laborator) 6
copyright@www.adrian.runceanu.ro
#include <iostream>
#include<math.h>
using namespace std;
class Punct {
protected:
double fi, teta, ro;
double x, y, z;
public:
Punct() {x=0; y=0; z=0;};
~Punct() {
cout<<"\n s-a apelat destructorul clasei punct";
}
void afisare_coordonate_polare()
{
cout<<"\n fi="<<fi;
cout<<"\n teta="<<teta;
cout<<"\n ro="<<ro<<endl;
}
23.11.2016 P.O.O. - limbajul C++ (laborator) 11
copyright@www.adrian.runceanu.ro
void afisare_coordonate_carteziene()
{
cout<<"\n x="<<x;
cout<<"\n y="<<y;
cout<<"\n z="<<z<<endl;
}
public:
Segment(double fi1, double teta1, double ro1,
double fi2, double teta2, double ro2): P1(fi1, teta1, ro1),
P2(fi2, teta2, ro2)
{ cout<<"\n s-a apelat constructorul clasei
segment";
}
23.11.2016 P.O.O. - limbajul C++ (laborator) 13
copyright@www.adrian.runceanu.ro
void distanta()
{
P1.Cartezian();
P2.Cartezian();
d=sqrt(pow((P2.x-P1.x),2)+pow((P2.y-
P1.y),2)+pow((P2.z-P1.z),2));
}
23.11.2016 P.O.O. - limbajul C++ (laborator) 14
copyright@www.adrian.runceanu.ro
- John Johnson