• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Pomoc z dziedziczeniem listy inicjalizacyjnej w konstruktorze

Object Storage Arubacloud
0 głosów
241 wizyt
pytanie zadane 12 lutego 2019 w C i C++ przez KonradH Nowicjusz (220 p.)

potrzebuje pomocy przy uzyciu jakby argumentow konstruktora klasy kolo do klasy kula, jest to przyklad z odcinka Pana Zelenta o dziedziczeniu, moze zle zrozumialem temat i ktos moglby cos podpowiedziec :). Pozdrawiam

 


#include <iostream>
#include <string>
#include <cmath>
#include <math.h>
#include <cstdlib>
#include <iomanip>
using namespace std;

class punkt
{
    float x, y;
    string nazwa;

public:
    void wyswietl()
    {
        cout << nazwa << "(" << x << "," << y << ")" << endl;
    }

    punkt(string n = "s", float a = 0, float b = 0)
    {
        nazwa = n;
        x = a;
        y = b;
    }
};

class kolo :public punkt //klasa kolo dziedziczy publicznie po klasie punkt ale zajebioza
{
    float r;
    string nazwa;

public:
    void wyswietl()
    {
        cout << "Kolo o nazwie: " << nazwa << endl;
        cout << "Srodek kola: ";
        punkt::wyswietl();
        cout << endl << "Promien: " << r << endl;
        cout << "Pole kola: " << M_PI * r * r << endl;
    }


    kolo(string nk="kolko", string np="S", float a=2, float b=2, float pr=1)
    :punkt(np,a,b)
    {
        nazwa = nk;
        r = pr;
    }
};

class kula:public kolo
{
    string nazwa;
    string srodek;
    float AK,BK,KR;

    long double obj;

public:

    kula(string NN,string sr,float ak,float  bk,float  kr) :kolo( NN, sr, ak,   bk, kr)
    {
        nazwa = NN;
        srodek = sr;
        AK = ak;
        BK = bk;
        KR = kr;
    }

    const double pi = 3.14;
    void kkk()
    {
        cout<<"\nNazwa kuli to: "<<nazwa<<endl;
        cout<<"Nazwa srodka kuli to: "<<srodek<<endl;
        cout<<"Dlugosc punktu A kuli to: "<<AK<<endl;
        cout<<"Dlugosc punktu B kuli to: "<<BK<<endl;
        cout<<"Dlugosc promienia kuli to: "<<KR<<endl;

        obj= 4/3 * pi * pow(KR,3);
        cout<<setprecision(10)<<"Objetosc kuli to: "<< obj <<endl;
    }
};

/*
zadanie domowe:
    dodaj klase o nazwie kula ktora bedzie miala nowy prywatny atrybut przechowujacy nazwe tej kuli, ta nazwa przeslosni odziedziczona nazwe z klasy kolo

    Nowe metody:
    -konstruktor z wykorzystaniem listy inicjalizacyjnej z konstruktora klasy kolo
    -void wyswietl() ktora pokaze parametry tej kuli a dodatkowo obliczy objetosc na podstawie jej promienia
    wzór na objetosc kuli:

         4
    V = --- PI r^3 (pi r do potegi trzeciej)
         3
*/

int main()
{
    kolo k1("Kolo","A",4,2,3);
    k1.wyswietl();

    kula a("nazewko","D",2,2,5);
    a.kkk();

}

 

1 odpowiedź

0 głosów
odpowiedź 13 lutego 2019 przez j23 Mędrzec (194,920 p.)

Nie napisałeś, jaki masz problem.

 

IMO kula niepotrzebnie dubluje pola, które dziedziczy po klasach bazowych. Jak chcesz mieć dostęp do pól klas bazowych, zrób je protected, albo dodaj odpowiednie akcesory.

Podobne pytania

0 głosów
0 odpowiedzi 138 wizyt
pytanie zadane 28 grudnia 2016 w C i C++ przez Szahid Pasjonat (20,930 p.)
0 głosów
1 odpowiedź 202 wizyt
0 głosów
3 odpowiedzi 291 wizyt
pytanie zadane 26 lutego 2016 w C i C++ przez Ziuziek Mądrala (5,140 p.)

92,572 zapytań

141,423 odpowiedzi

319,645 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...