Projekt języka C++ usiłuje zachować możliwie jak największą zgodność (na poziomie kodu źródłowego) z językiem C. Zgodność pomiędzy obydwoma językami nie zawsze była całkowita, ale jak dotąd ewentualne różnice były w praktyce nieistotne. Większym problemem związanym ze zgodnością była niekompatybilność kompilatorów języka C++ w zakresie obsługiwanej składni – przez wiele lat programy napisane pod jednym nie działały pod innym. Biblioteki C++ związane z interfejsami systemów nie są przenośne poza ich obręb, co wynika z faktu, że takie interfejsy są specyficzne dla danego systemu i nie dotyczy to wyłącznie C++.

Większość użytecznych programów w C++ wymaga stosowania bibliotek niestandardowych. Są one łatwo dostępne w Sieci zarówno jako produkty własnościowe, jak i jako FLOSS. Programy napisane w C++ mogą korzystać również z zasobów bibliotek języka C.

Język C++ jest standaryzowany przez ISO. Pierwszą wersję, C++98, opublikowano w 1998 jako ISO/IEC 14882:1998[3]. Następnie kilkukrotnie standard aktualizowano: C++03[4]C++11[5][6][7] (opracowany już w 2009 jako C++0x, jednak opublikowany dopiero w 2011)[8]C++14[9] oraz C++17. Ostatnia, najnowsza z wersji standardu, nazywana C++20, opublikowana została w grudniu 2020 jako ISO/IEC 14882:2020[10].