C++ Core Guidelines.

C++ Core Guidelines.

C++ Core Guidelines – co to jest ? Jest to temat, którym warto się poważniej zainteresować – a przynajmniej ja go za taki uważam 🙂

C++ Core Guidelines jest projektem, wystartowanym przez Bjarne Stroustrup’a (tego pana powinniście kojarzyć) i prowadzonym z pomocą Herb’a Sutter’a (też bardzo znany zawodnik).

(więcej…)

C++11 #7: Przeciążanie funkcji wirtualnych: specyfikator override.


Do każdego aspektu języka, z którego korzystamy, możemy mieć mniejsze lub większe uwagi. Oczywiście również posiadam swoją subiektywną listę niedociągnięć, jeśli chodzi o język C++.

Pomimo tego, że bardzo docieniam polimorfizm i sposób zaimplementowania tego mechanizmu, za niedopracowane uważam kwestie związane z dziedziczeniem i wykorzystaniem funkcji wirtualnych w C++.

(więcej…)

C++11 #6: Silne typy wyliczeniowe.

Większość programistów języka C++ zna doskonale typy wyliczeniowe (enum), zdefiniowane w standardzie C++98/03. Jest to wygodne, często wykorzystywane narzędzie. Jest to jednak również funkcjonalność, która posiada kilka zauważalnych niedociągnięć, przez co użycie typów wyliczeniowych nie jest tak przyjemne i odporne na błędy, jak mogłoby być.

W standardzie C++11 doczekaliśmy się pod tym względem malutkiej rewolucji – zdefiniowane zostały tzw. silne typy wyliczeniowe (ang. strongly-typed enums).

(więcej…)

C++11 #5: Nawiasy kątowe a argumenty szablonów.

Dzisiejszy temat dotyczy jednego z najbardziej zdumiewających problemów poprzednich standarów języka C++. Dlaczego zdumiewających ? Między innymi dlatego, że udało mu się przetrwać dzielnie kilkanaście lat (!), pomimo swojej nieskomplikowanej natury – chodzi o podwójne nawiasy kątowe.

Ale jak to się stało ?

Spójrzmy na poniższy kod:

(więcej…)

C++11 #4: Wskaźnik pusty – słowo kluczowe nullptr.

Wskaźnik pusty – nullptr.

Standard C++11 zajął się na poważnie jedną z kluczowych kwestii w kontekście języka – oznaczaniem wskaźników pustych (nieważnych). Nowościami są tutaj słowo kluczowe nullptr, oznaczające wskaźnik pusty oraz typ wskaźnika pustego, czyli std::nullptr_t.

nullptr jest literałem, który powinien być używany w kodzie źródłowym i oznacza wskaźnik pusty. Czym różni się on od wartości NULL, która wywodzi się z języka C i była do tej pory stosowana również w C++ ?

(więcej…)