За дизајнот и Еволуцијата на C++, Bjarne Stroustrup објаснува некои правила кои ги гористел при создавањето на C++.
* C++ е дизајнитран да биде статично типизиран програмски јазик за општа намена кој е исто толку ефикасен и пренослив како и C.
* C++ е дизајниран директни и комплетно да поддржува повејќекратни програмски стилови (процедурално програмирање , абстракција на податоци, објектно-ориентирано програмирање и генеричко програмирање)
C++ е дизајниран да им дава на програмерите избор, дури и овозможува програмерот да избере неточно
* C++ е дизајниран да бидеим компатибилендава сона C колку што е тоапрограмерите возможноизбор, содури тоаи еовозможува овозможеноапрограмерот леснада транзицијаизбере од C.неточно
* C++ е дизајниран да биде компатибилен со C колку што е тоа возможно, со тоа е овозможеноа лесна транзиција од C.
* C++ избегнува одлики кои се за специфична платформа, или кои не се за генерална употреба
* C++ е дизајнирн да функционира без софистицирана програмска околина