Кто-то из авторов писал, что С++ это по сути 3 языка: 1) C с классами 2) Объектно-ориентированные С++ 3) Шаблоны и метапрограммирование. Поскольку переход от 1) к 3) был хронологический, предлагаю и разбить диплом на 3 соответствующие части.
В 1) опирайтесь на "Дизайн и эволюция". Подразделы можно разбить на основе отличий C++ от C:
Чего нет в С
1) Классов
2) Исключений
3) Шаблонов
4) Пространств имен
2) Ссылок
2) Параметров по умолчанию
3) Необходимость определения переменных до расчетных блоков => нельзя for(int i = 0;...
4) Forward declaration