-
Data: 2012-07-05 15:49:23
Temat: Re: Co może robić konstruktor i dlaczego nie?
Od: "slawek" <h...@s...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Użytkownik "Maciej Sobczak" napisał w wiadomości grup
dyskusyjnych:15ad6c49-e409-40a2-a76f-c15cd00ab57b@go
oglegroups.com...
>Jeśli konstruktor i run() zawsze idą w parze i nie są rozdzielone innymi
>operacjami (spekulacja: można mieć listę takich obiektów? można je zapisać
>i odczytać? itd.), to można. Ale dlaczego się >na tym zatrzymywać? Jeżeli
>zaraz po run() obiekt i tak jest niszczony, to całość można zebrać w jedną
>funkcję runFoo().
Nie, nie można zebrać w jedną funkcję, bo obiektów tej klasy może być wiele
a każdy ze swoimi własnymi polami private, protected i public.
>Paweł podał argument, że być może ta funkcja jest skomplikowana i korzysta
>z usług innych klas, które odwołują się do pól Foo - ale to niewiele
>zmienia, bo skoro tym innym klasom trzeba >podać referencje do tych
>wykorzystywanych pól, to równie dobrze można im podać referencje do
>odpowiednich zmiennych lokalnych stworzonych w run().
Moim zdaniem bardzo kiepski pomysł - taki na poziomie C bez plusów.
>Podejrzewam tu po prostu nadmiar nieuzasadnionej "obiektowości".
Wszystko można zrobić w Fortranie. A być może Cobolu.
>> 2. Czy metodę run() można wywoływać w konstruktorze
>Można.
I to - patrząc na dyskusję na innym, anglojęzycznym, forum - jest nieco
wątpliwe. De facto konstruktor dla obiektów danej klasy może wywoływać się
niejako "przypadkowo" - np. gdy utworzy się zmienna tymczasowa. Ponadto -
AFAIR - dopiero po opuszczeniu konstruktora obiekt jest skonstruowany. Więc
run() wywołana wewnątrz po prostu działałaby na nieskonstruowanym
obiekcie... Ale z drugiej strony to nigdzie nie ma formalnie opisanego
"czego nie wolno w konstruktorze". IMHO w konstruktorze obiekt już w 100%
istnieje... pozostaje tylko dodać to co chcemy (i co być może MY uznajemy za
dodanie wisienki by obiekt był kompletny). Więc jeżeli uporamy się z
wisienką, to możemy konstruktor dowolnie mocno eksploatować.
>W takim razie nie ma potrzeby ich rozdzielać.
To po co rozdzielają to niemal w każdej z bibliotek GUI? Przez głupotę, czy
przez niewiedzę?
Następne wpisy z tego wątku
- 05.07.12 16:24 slawek
- 05.07.12 16:18 slawek
- 05.07.12 16:52 AK
- 05.07.12 18:59 Michoo
- 05.07.12 19:06 Michoo
- 05.07.12 21:01 slawek
- 05.07.12 22:34 Edek Pienkowski
- 05.07.12 23:30 slawek
- 05.07.12 23:45 Edek Pienkowski
- 05.07.12 09:37 Edek Pienkowski
- 06.07.12 08:17 slawek
- 06.07.12 09:09 Edek Pienkowski
- 06.07.12 10:59 AK
- 06.07.12 11:01 Paweł Kierski
- 06.07.12 11:10 Andrzej Jarzabek
Najnowsze wątki z tej grupy
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
Najnowsze wątki
- 2025-02-04 podpisywanie umów z datą wsteczną
- 2025-02-04 Radio internetowe do starego Androida
- 2025-02-04 "ogrodowa linia napowietrzna"
- 2025-02-04 Warszawa => Senior Account Manager <=
- 2025-02-03 Awaria BNP Paribas
- 2025-02-03 kryminalni i dochodzeniowcy
- 2025-02-03 Szczecin => Senior Field Sales (system ERP) <=
- 2025-02-03 Bydgoszcz => Specjalista ds. Sprzedaży (transport drogowy) <=
- 2025-02-03 jaki zasilacz laboratoryjny
- 2025-02-03 jaki zasilacz laboratoryjny
- 2025-02-03 Puszka w ziemię
- 2025-02-03 Białystok => Full Stack web developer (obszar .Net Core, Angular6+) <
- 2025-02-03 Kraków => Programista Full Stack .Net <=
- 2025-02-03 Kraków => MS Dynamics 365BC/NAV Developer <=
- 2025-02-03 Bez żadnego trybu