Однажды в Страуструпе я видел после главы такое забавное задание, жаль, кидать скрин нельзя: напишите программу, которая совершенно нечитабельна из-за применения макросов и переопределеня пользовательских операций. Идея: определите операцию + так, чтобы она означала - (и наоборот) для INT, а затем макросом определите INT как int. Переопределите популярные функции, чтобы они принимали ссылочные аргументы. Ряд запутывающих комментариев окончательно «украсят» ваше произведение
Это, кстати, только одна таска, вот вторая:
Передайте результат вашему другу. Посмотрите за тем, как ваш друг будет разбираться со смыслом программы. В конце концов, вы поймёте, чего вам следует избегать