Do reprezentacji typów poza klasami (class) mamy jeszcze struktury (struct).
Podstawowa (i w zasadzie jedyna) różnica polega na tym, że wszystkie elementy struktury - jej metody i zmienne są domyślnie publiczne. W klasie wszystko jest domyślnie prywatne.
Słowo private oznacza, że dostęp do tych pól lub metod mamy tylko wewnątrz klasy. Nie możemy się do nich odwoływać poza tą klasą. Słowo public oznacza, że mamy też dostęp z zewnątrz.
class Computer {
public:
void restart();
};
computer.restart(); // Okstruct Computer {
public:
void restart();
};
computer.restart(); // Okclass Computer {
void restart();
};
computer.restart(); // Forbidden, restart is a private memberstruct Computer {
void restart();
};
computer.restart(); // OkJest jeszcze jedna różnica w użyciu słów class i struct, ale dotyczy ona szablonów.
template <class T>
void function(T arg); // Oktemplate <struct T>
void function(T arg); // Compilation errortemplate <typename T>
void function(T arg); // Ok- Domyślnie twórz klasy (
class) i rób wszystko prywatne. Dopiero to co jest niezbędne przestawiaj jako publiczne. - Często robimy prywatne pola i publiczne metody, które je obsługują (gettery i settery). O nich opowiemy później.