Posiadam klasę Lista, w której mam operacje takie jak pobieranie elementów na żądaną pozycję , usuwanie z określonej pozycji itd. Teraz mam stworzyć klasę Stos dziedzicząc po klasie Lista. Czy dobrym rozwiązaniem jest w związku z tym nadpisanie tych dwóch powyższych funkcji w klasie Stos z argumentem 0 ( jako pierwsza pozycja elementu do pobrania/usuniecia) ?
Lepiej zrób to przez zawieranie.
Też uważam, że byłoby to dobre rozwiązanie, ale niestety zadanie narzuca mi dziedziczenie niepubliczne z góry...
Nadal nie musisz nadpisywać, stos ma zwykle metody push
i pop
Czyli sugerujesz zdefiniowanie w klasie stos tych funkcji na nowo ?
A umiesz zdefiniować na staro?
_13th_Dragon napisał(a):
A umiesz zdefiniować na staro?
Lubisz za słowka łapać, co ? :D
Btw. Czyli dziedzicząc po klasie Lista jedynym pozytywnym aspektem będzie to,że zyskamy od niej strukturę węzłów ?
Nie powinieneś w klasie stos nawet wspominać (ani kodem ani komentarzem) o węzłach.
Domyślam się, że masz na myśli hermetyzację ;) W takim razie myślę, że napisanie takiego pop'a i "push'a żeby zawierały analogiczne metody z klasy Lista (z argumentem 0 jako pozycja odowiednio pobrania elementu ze stosu i zdejmowania z niego) będzie dobrym rozwiązaniem.
Albo źle się domyślasz albo niepoprawnie używasz słowa "analogiczne".
Ujawnię Ci wiec skrawek moich myśli :D
W klasie Lista mam funkcję dodajElement(int wartosc, int pozycja)
Teraz w klasie Stos tworzę funkcje:
void dodajElement(int wartosc)
{
Lista::dodajElement(wartosc, 0);
}