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

Czy możliwe jest stworzenie kontenera przechowującego rożne struktury?

Ostatnio zmodyfikowano 2011-07-13 15:13
Autor Wiadomość
dmx81
» 2011-07-13 15:00:55
tworzysz klase podstawowa (wspolna dla powyzszych, ktore wymieniles - wspolna moze byc np metoda, jakas zmienna)
tworzysz klasy pochodne po klasie podstawowej, dodajac juz indywidualne zmienne, metody dla odpowiednich klas,
tworzysz kontener obiektow (lub wskaznikow) klasy podstawowej

C/C++
class A
{
    virtual void funkcja(); //=0;
};

class B
    : public A
{
    void funkcja();
    int a;
};

class C
    : public A
{
    void funkcja();
    float a;
    string nazwa;
}

vector < A *> vA;

cos mniej wiecej takiego, oczywiscie to w duzym uproszeniu (nie wiem, czy nie ustrzeglem sie jakiegos bledu - traktuj jako pseudo-kod.
Oczywiscie nalezaloby dopisac kontruktory, destruktory, przemyslec konstrukcje klasy podstawowej - ale to wyjdzie w trakcje tworzenia - a z czasem, jak nabierzesz doswiadczenia, to juz wiekszosc na etapie projektowania dasz rade przewidziec (ale pewnie nie wszystko)
virtual - prostymi slowami - umozliwia nadanie tej samej funkcji roznych zachowan, w zaleznosci od przynaleznosci do odpowiedniej klasy
=0;
uczyni klase czysto wirtualna - co oznacza, ze niemozliwym stanie sie utworzenie obiektu klasy A, musisz podac definicje tej funkcji w klasie dziedziczacej.

Poczytaj o dziedziczeniu, z pewnoscia nie jest to temat prosty na kilkanascie minut, niezrozumienie go niesie ze soba liczne pulapki, ale jesli pomalu bedziesz go opanowywal - pomaga rozwiazac/ulatwic wiele problemow - jak na przyklad twoj.
Takze powodzenia (dziedziczenie, polimorfizm  inne pokrewne tematy)
P-35900
Savail
Temat założony przez niniejszego użytkownika
» 2011-07-13 15:13:33
heh, dzięki wielkie dmx81. Teraz przynajmniej wiem mniej więcej o co w tym wszystkim chodzi i twoje wskazówki/porady na pewno przyspiesza moją naukę ^^. Napisałeś o konkretach oraz wyjaśniłeś jak to powinno działać zamiast pisać że mnie to przerośnie... ;p. Dzięki wielkie raz jeszcze!
P-35904
1 « 2 »
Poprzednia strona Strona 2 z 2