Powiel możliwe:
How much work should be done in a constructor?Czy konstruktor C++ powinien naprawdę działać?
mam strugging z jakąś poradę mam w głębi mojego umysłu, ale dla których nie mogę zapamiętać rozumowania.
Pamiętam, że w pewnym momencie przeczytałem kilka porad (nie pamiętam źródła), że konstruktory C++ nie powinny wykonywać prawdziwej pracy. Zamiast tego powinny one inicjować tylko zmienne. Porada wyjaśniła, że prawdziwa praca powinna być wykonywana w jakiejś formie init(), którą należy wywołać osobno po utworzeniu instancji.
Sytuacja polega na tym, że mam klasę reprezentującą urządzenie sprzętowe. Logiczne jest dla mnie, aby konstruktor wywoływał procedury, które wysyłają zapytania do urządzenia, aby zbudować zmienne instancji opisujące urządzenie. Innymi słowy, po utworzeniu nowego obiektu, programista otrzymuje obiekt, który jest gotowy do użycia, nie wymaga osobnego wywołania object-> init().
Czy istnieje dobry powód, dla którego konstruktorzy nie powinni wykonywać prawdziwej pracy? Oczywiście może to spowolnić czas przydziału, ale nie byłoby inaczej, gdyby wywołanie osobnej metody nastąpiło natychmiast po przydzieleniu.
Po prostu próbuję rozgryźć, co nie sądzisz, co mogłoby doprowadzić do takiej porady.
Możliwe do scalenia. – dmckee