Aktywne Wpisy

Chcemy z moim niebieskim paskiem kupić psa. Na tapecie są 2: corgi i samoyed. Nie wiem który lepiej się w bloku odnajdzie. Jakie są wasze doświadczenia? Który byłby lepszy? #psy #pieswbloku #zwierzaczki

Rocky_Zuma_Skye +559
Skopiuj link
Skopiuj link

Wykop.pl
#programowanie #cpp
@M4lutki
mam wskaznik do obiektu rodzica, wykorzystuje go tez do pokazywania na obiekty dziedziczace. chcialem za jego pomoca wywolac element znajdujacy sie w obiekcie dziedziczacym i jednoczesnie nie znajdujacy sie w obiekcie rodzica i mi wywala blad, ze elementu tego nie ma w klasie rodzica. a przeciez niby moge uzywac wskaznikow rodzica do dzieci. bylem przekonany, ze moge cos takiego zrobic. cos #!$%@? czy faktycznie nie moge?
Jak rozumiem chcesz dostać się poprzez wskaźnik do klasy bazowej do elementu znajdującego się tylko i wyłącznie w klasie dziedziczącej po klasie bazowej? Dobrze zrozumiałem? :)
Slajd 3 :)
to:
przez ten wskaźnik możemy mieć dostęp tylko do tych składowych
klasy pochodnej, które dziedziczą się z klasy bazowej – klasa bazowa nic
nie wie o składowych, które powstali w klasie pochodnej
dzieki. szkoda.
static_cast(wskaznik_na_baze)->elementale musisz mieć pewność, ƶe to faktycznie wskaźnik na tą klasę, bo inaczej masz UB.
@KrzaQ2: Nie lepiej użyć w tym miejscu dynamic_cast? Dodatkowo będzie sprawdzenie czy rzutowanie wykonało się poprawnie.
class Base {
public:
virtual Foo getElement() = 0;
}
class Derived1 : public Base {
private:
Foo element;
public:
Foo getElement() { return element; }
}
class Derived2 : public Base {
public:
Foo getElement() { throw std::runtime_error("operation not supported"); }
}
Rozwiązanie @KrzaQ2 jest wydajniejsze, ale dość brzydkie. :)
zrobilem troche na okolo, bez rzutowania. no wlasnie prowadzacy mi tez mowil, ze powinienem zrobic rzutowanie, ale juz nie pamietam czy dynamic czy static powiedzial, bo bylem polprzytomny z powodu bardzo krotkiego snu.
@M4lutki:
zaliczylem! dzieki za pomoc nocny mirku.
a tam nic :P poswieciles swoj czas i swoja pozytywna postawa dodales mi otuchy w boju :P:P:P
edit: poświęciłeś nie poswięciłem oczywiscie. jeszcze nie odespalem
rozwal to na "mietko" :P
powodzenia
a ja idę spać