Wpis z mikrobloga

#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ę.
  • 6
@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 &&),