C99). Możliwość programowania obiektowego: Mechanizmy hermetyzacji: funkcje składowe sekcje prywatne, chronione i publiczne zaprzyjaźnianie funkcji i klas Klasy, jako rozszerzenie struktury o funkcje składowe, enkapsulację, dziedziczenie i polimorfizm Obiekty, będące instancjami klas Dziedziczenie (w tym dziedziczenie wielobazowe) Metody wirtualne dostarczające polimorfizm Konstruktory (służące również do niejawnej konwersji; później dodano również możliwość zakazania niejawnej konwersji przez konstruktor za pomocą explicit) Destruktory, czyli funkcja wywoływana niejawnie przed (ściśle ustalonym) usunięciem obiektu Operatory new i delete Dynamiczna kontrola typów (RTTI), czyli dynamiczne (sprawdzane w czasie wykonywania) rzutowanie pomiędzy typami spokrewnionych klas, oraz określanie typu w czasie wykonywania (operatory dynamic_cast i typeid) Słowo kluczowe this (wskaźnik na obiekt, w kontekście którego wywoływana jest metoda) Wskaźniki do składowych (pól i metod) Metody i pola statyczne Udogodnienia związane z programowaniem generycznym: Szablony (wzorce) klas i funkcji Włączenie do biblioteki standardowej generycznej biblioteki STL Obsługa wyjątków: Deklaracja wychwytywania wyjątków: try ...