Styl kodowania obowiązujący na projektach z ZPR.
Rafał Biedrzycki
- Kodowanie: ASCII (Plain), tj. brak znaków narodowych.
- Nadawanie nazw oraz komentarze w jęz. polskim lub angielskim - należy jednak zdecydować się na konkretny język i tego właśnie języka używać w całym programie.
- Nazwa pliku powinna odpowiadać zawartości.
- Nazwa pliku powinna powinna rozpoczynać się dużą literą, np. ObliczaniePierwiastkow.cc.
- Pliki z kodem powinny mieć rozszerzenie .cc.
- Pliki nagłówkowe powinny mieć rozszerzenie .h.
- Pliki nagłówkowe zawierające zarówno deklarację jak i definicję (sensowne przy szablonach) powinny mieć rozszerzenie .hpp.
- Każdy plik źródłowy oraz nagłówkowy powinien rozpoczynać się blokiem komentarza zawierającym dane autora oraz opis zawartości.
- Każda nietrywialna klasa i metoda powinny być poprzedzone blokiem komentarza.
- Należy unikać trudnych w zrozumieniu fragmentów kodu, a gdy nie da się ich uniknąć powinny zostać opatrzone komentarzem.
- Nazwy klas, struktur, wyliczeń i nazwy definicji typów (typedef) powinny zaczynać się dużą literą. Każdy następny wyraz użyty w nazwie powinien zaczynać się dużą literą, np. struct KotekInfo{};.
- Nazwy funkcji oraz nazwy metod powinny zaczynać się małą literą. Każdy następny wyraz użyty w nazwie powinien zaczynać się dużą literą, np. int obliczPierwiastki(){};.
- Parametry funkcji/metody oraz zmienne lokalne powinny rozpoczynać się małymi literami. Każdy następny wyraz użyty w nazwie powinien zaczynać się małą literą, kolejne wyrazy powinny być rozdzielone znakiem podkreślenia ’_’, np. char czy_koniec;.
- Elementy wyliczeń oraz nazwy stałych powinny być pisane wyłącznie dużymi literami. Każdy następny wyraz użyty w nazwie powinien być rozdzielony od pozostałych znakiem podkreślenia ’_’, np. enum Kolor{BIALY, CZARNY}; const int ROZMIAR_MAKSYMALNY=14;.
- Nazwy pól klasy kończą się znakiem podkreślenia ’_’.
- Na początku dołączamy nagłówki bibliotek, potem własne nagłówki.
- W plikach z implementacją włączamy przestrzeń 'std', a w plikach nagłówkowych nie.
- Proszę o zwrócenie uwagi na to, gdzie występują spacje w poniższym przykładzie. (spacje mogą być również tak, jak robi clang-format)
- Przykład:
#include <iostream>
#include <cmath>
#include "Kotek.h"
class MojaKlasa{
public:
    MojaKlasa();
    void funkcjaPierwsza( int parametr_pierwszy );
    enum class Kolor{ BIALY, NIEBIESKI, CIEMNO_ZIELONY };
private:
    Kolor kolor_;
};
- Należy wykonywać wcięcia o jeden poziom dla każdego nowego poziomu logicznego. Przykład:
if( wyr )
    instr1;
int obliczPierwiastki(){
    for(  ;  ; ){
       if( wyr ){
          instr1;
          instr2;
          ...
       }
       instr3;
       ...
    }
}