-
Data: 2012-07-06 11:10:35
Temat: Re: Co może robić konstruktor i dlaczego nie?
Od: Andrzej Jarzabek <a...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On Jul 5, 4:24 pm, "slawek" <h...@s...pl> wrote:
> Użytkownik "Andrzej Jarzabek" napisał w wiadomości grup
> dyskusyjnych:7a3451d2-b497-461a-8a6e-b79d7ffda...@a1
6g2000vby.googlegroups.com...
>
> >Pewną dość oczywistą wadą 'uruchomienia przez konstruktor' jest brak
> >możliwości sensownego dziedziczenia po takiej klasie. W C++ dodatkowo
> >w takich przypadkach występuje problem z wywoływaniem funkcji
> >wirtualnych z konstruktora.
>
> Ale przecież konstruktor tej klasy może być sparametryzowany i jednocześnie
> domyślny konstruktor może być pusty. No problem.
Problem jest taki, że jeśli w klasie potomnej w konstruktorze wywołasz
ów pusty konstruktor, to tracisz dostęp do swojego 'run' - nie
skonstruujesz klasy bazowej dwa razy.
> Chyba vtable jest już wypełniona przed wejściem w blok {} konstruktora? Bo i
> niby czemu nie miałaby być?!
Powody mogłyby być, natomiast np. w C++ będzie to vtable dla aktualnie
konstruowanej klasy, a nie dla końcowego typu obiektu, który jest
konstruowany. Czyli jeśli masz klasę B, która wywołuje swój 'run' w
konstruktorze, tworzysz dziedziczącą po niej klasę D, która nadpisuje
funkcje wirtualne klasy B, to wywołania tych funkcji w 'run' nadal
wywołują funkcje zdediniowane dla B, nie te dla D. Nie mówiąc już o
pięknej okazji do wprowadzenia UB jeśli klasa jest abstrakcyjna.
W Javie jest inaczej, ale niekoniecznie lepiej: cała klasa
inicjalizowana jest przed konstrukcją i metody są wywoływane dla
ostatecznego typu, ale to znaczy, że trzeba przewidzieć
'nieskonstruowany' stan klasy: nie możesz np. założyć, że jakas
referencja jest nie-null, jeśli ustawiasz jej wartość w konstruktorze.
Następne wpisy z tego wątku
- 06.07.12 12:59 Paweł Kierski
- 06.07.12 13:27 Jacek
- 06.07.12 13:50 Edek Pienkowski
- 06.07.12 13:42 AK
- 06.07.12 15:08 Paweł Kierski
- 06.07.12 15:24 AK
- 06.07.12 15:36 slawek
- 06.07.12 16:01 slawek
- 06.07.12 16:13 AK
- 06.07.12 16:33 Edek Pienkowski
- 06.07.12 19:11 Bogusław Szczepanowski
- 06.07.12 19:20 AK
- 06.07.12 20:38 slawek
- 06.07.12 20:55 Edek Pienkowski
- 07.07.12 10:54 Bogusław Szczepanowski
Najnowsze wątki z tej grupy
- A Szwajcarzy kombinują tak: FinalSpark grows human neurons from stem cells and connects them to electrode arrays
- Re: Najgorszy język programowania
- NOWY: 2025-09-29 Alg., Strukt. Danych i Tech. Prog. - komentarz.pdf
- Na grupie comp.os.linux.advocacy CrudeSausage twierdzi, że Micro$lop używa SI do szyfrowania formatu dok. XML
- Błąd w Sofcie Powodem Wymiany 3 Duńskich Fregat Typu Iver Huitfeldt
- Grok zaczął nadużywać wulgaryzmów i wprost obrażać niektóre znane osoby
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
Najnowsze wątki
- 2025-12-12 Cyna dylemat
- 2025-12-12 Warszawa => Przedstawiciel handlowy / KAM (branża TSL) <=
- 2025-12-12 Warszawa => Architekt rozwiązań (Workday) - Legal Systems <=
- 2025-12-12 Warszawa => Dynamics 365 Commerce/POS Developer <=
- 2025-12-12 Wrocław => React Developer with knowledge of C++ <=
- 2025-12-12 Białystok => Programista React ze znajomością C++ <=
- 2025-12-12 Warszawa => Microsoft Dynamics 365 Finance Consultant <=
- 2025-12-11 To już efekt Żurka czy coś jeszcze GORSZEGO?
- 2025-12-11 Policjanci w mieście Łodzi zmierzą ci prędkość z błędem mniejszym niż producent w laboratorium :-)
- 2025-12-11 Warszawa => Senior Java Developer <=
- 2025-12-11 Kolejny prezent
- 2025-12-10 hameryka
- 2025-12-10 Tak im zależy na wlasnym kraju. :-(
- 2025-12-10 Czy "hipoteka przymusowa" podpada (powinna podpadać) pod ochronę immunitetem poselskim? [Ziobro]
- 2025-12-10 Żurek po raz kolejny wykazał jaki poziom reprezentuje




2035 rok coraz mniej realny? Europa traci tempo w wyścigu o elektromobilność