C++ более контекстно-зависимый язык чем C, что обеспечивается типами: ООП, шаблоны, специализации, перегрузки ... С фактически контекстно-зависим, за исключением неявного приведения и является просто макроассемблером с единым наименованием макросов с целью научить Эллочку-людоедку (кстати безуспешно). Уж лучше бы ее учили макроассемлеру. В С и С++ плохая система типов, сравните с Haskell. А фразы вроде " он гибкий" или " на на нем написаны операционные системы" это попугайство и глупость. Вся "гибкость" это введение в АЛГОЛ указателей, всего лишь доступ к памяти по косвенной адресации (LEA в процессорах Intell) и typedef для рекурсивного определения новых типов. Т. е. С и С++ я бы не называл языками, потому что их не может освоить Эллочка-людоедка!