Czy w cpp obowiązują jakieś ciekawe zasady poprawnego projektowania klas?

0

Czołem,
tak jak w tytule zastanawiam się czy w tym języku są jakieś ciekawe zasady projektowania klas. Obiły mi się o uszy takie rzeczy:

  1. jedna klasa na jeden plik. To prawda? nawet jeśli są trzy klasy po 15 linijek, to trzeba tworzyć dla nich oddzielne pliki?
  2. metoda, która nie używa wskaźnika this powinna być static
  3. **implementowanie metod z różnych klas w jednym pliku jest nierozsądnym posunięciem **
  4. **destruktor powinien być zawsze wirtualny w klasie rodzica **

nie jestem w stanie podać źródeł skąd o takich rzeczach wiem, bo nie pamiętam już skąd się o nich dowiedziałem. Podczas nauki utkwiły mi w głowie, a nie znalazłem na nie satysfakcjonującej odpowiedzi. To jak to z tym jest, fakty czy mity? :P
cieplusie pozdrowienia

2
  1. jedna klasa na jeden plik. To prawda? nawet jeśli są trzy klasy po 15 linijek, to trzeba tworzyć dla nich oddzielne pliki?

Mit

  1. metoda, która nie używa wskaźnika this powinna być static

Brzmi sensownie. Ale takie metody w dużej ilości przypadków można całkowicie schowac jako free functions a anonimowym namespace w cpp.

  1. **implementowanie metod z różnych klas w jednym pliku jest nierozsądnym posunięciem **

Brzmi sensownie

  1. **destruktor powinien być zawsze wirtualny w klasie rodzica **

Mit.

1

Co do 2, poza patrzeniem czy tutaj używasz, zastanów się na kontraktem jaki zawierasz deklarując metodę w taki lub inny sposób. Czy implementacja w przyszłości może się zmienić i potrzebować this? Czy metoda będzie nadpisana przez klasy dziedziczące? Czy będzie wykorzystana w kontekście polimorfizmu dynamicznego (virtual)?

Nie widzę powodu aby jeden nagłówek/plik nie służył do implementacji kilku klas. Zobacz ile rzeczy zdefiniowanych jest w <utility>

1 użytkowników online, w tym zalogowanych: 0, gości: 1