#cpp #programowanie #naukaprogramowania Czy nie używanie konstruktorów w klasach to zło? Wiem, że klasa tak, czy siak wygeneruje sobie konstruktor jak i dekonstruktor, jednak zastanawia mnie jak na to patrzą pracodawcy, jak i inni ludzie, gdy podeślę im link do githuba, w którym w taki sposób inicjuję prywatne zmienne. (ʘ‿ʘ) Pytam, bo wiem jak ludzie patrzą na używanie goto i czy przez nieużywanie konstruktorów nie jest się uznawanym za gorszego programistę.
@TMBRK: To zależy. Czasami dla bardzo prostych klas nie potrzeba własnego konstruktora, ale zwykle dobrą praktyką jest wstawianie go do każdej klasy i nim inicjalizowanie obiektu i wartości początkowych.
@TMBRK Destruktor a nie dekonstruktor( ͡°͜ʖ͡°). Poczytaj sobie o RAII - resource acquisition is initialization. Pozwala to paru bledow uniknąć i w efekcie powstaje lepszej jakości kod. Pamiętaj że jako zawodowy programista najczęściej będziesz pracował w zespole więc Twój kod musi być wykorzytywany bez problemowo przez innych. Dodam tylko że obecnie oprócz konstruktora powinno się stworzyć (albo ' usunac') konstruktor kopjujacy, operator =, move konstruktor.
@TMBRK: Czasami się robi proste agregatki (struktury; klasy z wszystkimi publicznymi polami), by właśnie oszczędzić sobie na pisaniu konstruktorów które tylko kopiują parametry.
Inna sprawa jest jeżeli twoja klasa nie może się kopiować trwywialnie (zarządza zasobami, np wskaźniki, uchwyty, indexy), to koniecznie musisz zdefiniować konstruktor kopiujący i operator przypisania. Jeżeli dodatkowo masz zwrotną referencje która wskazuje na twój obiekt to też koniecznie musisz zdefiniować konstruktor przenoszący (w C++11 ten z
Czy nie używanie konstruktorów w klasach to zło? Wiem, że klasa tak, czy siak wygeneruje sobie konstruktor jak i dekonstruktor, jednak zastanawia mnie jak na to patrzą pracodawcy, jak i inni ludzie, gdy podeślę im link do githuba, w którym w taki sposób inicjuję prywatne zmienne. (ʘ‿ʘ)
Pytam, bo wiem jak ludzie patrzą na używanie goto i czy przez nieużywanie konstruktorów nie jest się uznawanym za gorszego programistę.
Ewentualnie poszukaj najpopularniejszego style guide do c++
@TMBRK: Nie. Jak nie potrzebujesz i wystarczy ci domyslny to nie musisz. Najlepsza praktyak to uzywanie specyfikatora default.
Inna sprawa jest jeżeli twoja klasa nie może się kopiować trwywialnie (zarządza zasobami, np wskaźniki, uchwyty, indexy), to koniecznie musisz zdefiniować konstruktor kopiujący i operator przypisania. Jeżeli dodatkowo masz zwrotną referencje która wskazuje na twój obiekt to też koniecznie musisz zdefiniować konstruktor przenoszący (w C++11 ten z