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

Dziedziczenie właściwości obiektu.

Object Storage Arubacloud
0 głosów
153 wizyt
pytanie zadane 9 kwietnia 2016 w C i C++ przez Klik Obywatel (1,540 p.)

Witam.

Przerabiając tą lekcje

https://www.youtube.com/watch?v=ZesZXlBcROA&list=PLOYHgt8dIdozvOVheSRb_qPVU-4ZJA7uB&index=5

z obiektowego C++ zastanowiła mnie jedna rzecz.

#include <iostream>
#include <math.h>

using namespace std;

class Punkt
{
    string nazwa;
    float x,y;

public:
    void wyswietl()
    {
        cout<<nazwa<<"("<<x<<","<<y<<")"<<endl;
    }
    Punkt(string n="S", float a=0, float b=0)
    {
        x=a;
        y=b;
        nazwa=n;
    }
};

class Kolo :public Punkt
{
    string nazwa;
protected:
    float r;
public:
    void wyswietl()
    {
        cout<<"Kolo o nazwie "<<nazwa<<endl;
        cout<<"Srodek kola "<<endl;
        Punkt::wyswietl();
        cout<<"Promien: "<<r<<endl;
        cout<<"Pole kolo wynosi: "<<M_PI*r*r<<endl;
    }
    Kolo(string nk="Kolko", string np="S", float a=0, float b=0, float pr=1)
    :Punkt(np,a,b)
        {
            nazwa=nk;
            r=pr;
        }
};

int main()
{
    Kolo k1;
    k1.wyswietl();
    return 0;
}

Otóż stworzyliśmy obiekt "p1" klasy Punkt, który posiada dwie właściwości x,y. Czy później na podstawie tego obiektu "p1" możemy stworzyć obiekt "k1" klasy Kolo. Który będzie dziedziczył właściwości x,y z obiektu "p1" a w konstruktorze k1 dodamy tylko właściwość "r".

W powyższej lekcji aby stworzyć obiekt klasy Kolo i tak musimy podać x,y tworzonego obiektu.

Jak coś takiego napisać?

Dziękuję

2 odpowiedzi

0 głosów
odpowiedź 9 kwietnia 2016 przez niezalogowany
Możesz podać przykład na jakimś przykładzie kodu, nie jestem pewien czy cię dobrze zrozumiałem, prawdopodobnie pytasz się o polimrfizm i wtedy tak, można to zrobić. A jak, to radzę poczytać: http://cpp0x.pl/kursy/Programowanie-obiektowe-C++/Polimorfizm/499
komentarz 9 kwietnia 2016 przez Klik Obywatel (1,540 p.)
No kodu nie mam bo nie mam pojęcia jak by to miało wyglądać :).

Niem wiem jak dokładniej jeszcze ubrać to w słowa. Dobra, może jak zrobię kurs do końca to będzie tam odpowiedź na moje pytanie.
komentarz 9 kwietnia 2016 przez niezalogowany

Chodziło mi o kod, który nie jest poprawny ale jak twoim zdaniem powinno to wyglądać. Zgaduję że chodzi ci o coś takiego (uprzedzam że poniższy listing jest niepoprawny):

Punkt p = Kolo(x,y,r);

Poniższy kod jest już poprawny:

Punkt* p = new Kolo(x,y,r);
p->wyswietl();

Jednakże w tym momencie jeżeli byś miał w klasie Kolo dodatkowe metody których nie posiada Punkt to straciłbyś możliwość ich uruchomienia w ten sposób.

0 głosów
odpowiedź 9 kwietnia 2016 przez notabigthreat Mądrala (7,060 p.)

Niech Kolo, zamiast dziedziczyć z Punkt, przechowa środek jako zmienną (typu Punkt). Dopisz wtedy konstruktor koła, przyjmujący punkt (środek) oraz promień.

Podobne pytania

0 głosów
1 odpowiedź 190 wizyt
pytanie zadane 22 maja 2017 w C i C++ przez Sensej Użytkownik (540 p.)
0 głosów
2 odpowiedzi 173 wizyt
0 głosów
1 odpowiedź 144 wizyt
pytanie zadane 27 czerwca 2018 w C i C++ przez 99xkubax99 Obywatel (1,780 p.)

92,555 zapytań

141,402 odpowiedzi

319,540 komentarzy

61,938 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!

...