[C++] Dziedziczenie i konstruktory
Ostatnio zmodyfikowano 2015-01-03 18:59
ciken007 Temat założony przez niniejszego użytkownika |
[C++] Dziedziczenie i konstruktory » 2015-01-03 18:47:12 Witajcie. Mam napisać program z 3 klasami: prostopadłościan, kula, bryła. 2 pozostałe mają dziedziczyć z bryły wartości pole podstawy i objętość. Mam do tego wszystkiego napisać metody pozwalające na obliczenie pola powierzchni i objętości prostopadłościanu i kuli. Dziedziczenie wydaje się działać, tylko jakiekolwiek próby modyfikacji wartości się nie udają. Dodam że moja znajomość programowania jest na poziomie przedszkola ;) #include<iostream> #define PI 3.14 using namespace std;
class bryla { protected: double objetosc, pole_podstawy; public: void przypisz( double a, double h ) { pole_podstawy = a; objetosc = h; } bryla() : objetosc( 3 ) , pole_podstawy( 2 ) { cout << "Konstruktor objetosc " << objetosc << endl; cout << "Konstruktor pole " << pole_podstawy << endl; } ~bryla() { cout << "Destruktor bryla\n"; } }; class prostopadloscian : public bryla { protected: double dl_kr; public: double pole_p() { return pole_podstawy * 2; } double v() { return objetosc * 3; } }; class kolo : public bryla { protected: double promien; public: double pole_p() { return pole_podstawy * 10; } double v() { return objetosc * 10; } };
int main() { bryla aaa; prostopadloscian bbb; kolo ccc; return 0; }
|
|
DejaVu |
» 2015-01-03 18:59:59 class Bryla { public: virtual double pole() = 0; virtual double objetosc() = 0; };
class Prostopadloscian : public Bryla { public: Bryla( float _x, float _y, float _z ) : m_x( _x ) , m_y( _y ) , m_z( _z ) { } double objetosc() override { return m_x * m_y * m_z; } double pole() override { } private: float m_x; float m_y; float m_z; };
void wypisz( Bryla & bryla ) { }
int main() { Prostopadloscian p( 3, 4, 5 ); wypisz( p ); }
PS. Poczytaj sobie Polimorfizm jeżeli czegoś nie rozumiesz. |
|
« 1 » |