Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++] Dziedziczenie i konstruktory

Ostatnio zmodyfikowano 2015-01-03 18:59
Autor Wiadomość
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 ;)
C/C++
#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;
}
P-123974
DejaVu
» 2015-01-03 18:59:59
C/C++
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
    {
        // (...) tu sobie napisz implementację
    }
   
private:
    float m_x;
    float m_y;
    float m_z;
};

void wypisz( Bryla & bryla )
{
    //(...) tu sobie napisz implementację
}

int main()
{
    Prostopadloscian p( 3, 4, 5 );
    wypisz( p );
}

PS. Poczytaj sobie » Programowanie obiektowe, C++Polimorfizm dział kursu jeżeli czegoś nie rozumiesz.
P-123975
« 1 »
  Strona 1 z 1