Здравствуйте, Философ, Вы писали:
Ф>Требуется: Ф>Написать консольную программу, по запросу выводящую подходящие покупателю товары. От программы так же требуется возможность определить совместимость компонетов выбранных покупателем. При разработке необходимо учесть, что ассортимент товаров может быть расширен.
Ф>Здесь я предлагаю написать только классы товаров, т.е. интересуют отношения между классами, их свойства и методы.
Но это уже не задача, а решение, чего следует избегать. Заранее было решено использовать наследование для распределения данных по классам товаров. А для реальной задачи никто так делать не будет.