Aktywne Wpisy

rancorn +32
"słyszałeś że pisarski napisał książkę?
Słyszałem.
A czytałeś?
Nie.
Jak wiekszosc.
*SMIECH PAWIANA*
Słyszałem.
A czytałeś?
Nie.
Jak wiekszosc.
*SMIECH PAWIANA*
źródło: 1000053392
Pobierz
Napiszcie mi coś sympatycznego.





Pytanie o void pointery. Mam sobie bazową klasę O oraz klasy A i B które z niej dziedziczą. No i mam obiekt A w pointerze
A* a. Pobieram go sobie taką funkcją:void* getAsVoid() { qDebug() << static_cast(a); qDebug() << static_cast(a)->name; return static_cast(a); }printuje sobie tutaj z casta do O adres i nazwę (const QString) żeby sprawdzić czy wszystko ok i jest ok. No i później tam gdzie to wziąłem, robię coś takiego:
auto a = static_cast(getAsVoid());qDebug() << a;
qDebug() << a->name;
No i najpierw mi printuje adres, jest taki sam. Ale nazwy już nie printuje, wywala mi błąd:
Nigdy nie musiałem void pointerów używać, czy robię źle coś oczywistego?
Tu jest jak dziedziczą klasy: https://pastebin.com/wzJyR2x9
A main.cpp wygląda
static_castrobiszqobject_cast(chociaż dynamic_cast też może być).A dokładniej jeżeli przechowujesz w obiekcie wskaźnik to jeszcze bezpieczniej używać QPointer.
Jeżeli potrzebujesz coś przekazywać poza QObjecttami to uzywasz QVariant.
Dzięki temu C++ staje się dużo bardziej bezpieczny.