Не про ООП вовсе, но тоже будет полезно:
1. Закодь структуры данных: динамический массив, двусвязный, стэк, бинарное дерево, циклический буффер, очередь, хэш-таблица, etc.
2. Реализуй разные алгоритмы к этим структурам:
Массив, список - линейный поиск, бинарный поиск, несколько вариантов сортировок на твой выбор.
Дерево - хотя бы обходы в ширину и глубину.
3. Покрой все это тестами.
Бонус 1: по умолчанию структуры можешь делать для целых чисел, но если сложностей не боишься и шаблоны плюс минус понимаешь - сделай перечисленные структуры шаблонными.
Бонус 2: итераторы. Разберись что это если не знаешь и реализуй их для своих структур.
Бонус 3: если ты все это осилил - переходи к более сложным структурам, например красно-черное дерево, etc.
Не про ООП вовсе, но тоже будет полезно:
1. Закодь структуры данных: динамический массив, двусвязный, стэк, бинарное дерево, циклический буффер, очередь, хэш-таблица, etc.
2. Реализуй разные алгоритмы к этим структурам:
Массив, список - линейный поиск, бинарный поиск, несколько вариантов сортировок на твой выбор.
Дерево - хотя бы обходы в ширину и глубину.
3. Покрой все это тестами.
Бонус 1: по умолчанию структуры можешь делать для целых чисел, но если сложностей не боишься и шаблоны плюс минус понимаешь - сделай перечисленные структуры шаблонными.
Бонус 2: итераторы. Разберись что это если не знаешь и реализуй их для своих структур.
Бонус 3: если ты все это осилил - переходи к более сложным структурам, например красно-черное дерево, etc.
P.S. Офк идеальными они у тебя не выйдут, и гнаться за производительностью такой как в STL не следует. Сделай просто чтоб работало :) В процессе думаю много что нового узнаешь и закрепишь тут же практикой.