Есть люди, которые говорят, что вы можете написать объектно-ориентированный код на любом языке, а также есть люди, которые говорят, что вы можете написать ужасно неструктурированный код на любом языке.
Настоящий язык "OO" предоставляет вамГорстка механизмов для реализации ОО-дизайна: языки имеют встроенные концепции для объекта и / или классов, для инкапсуляции кода с данными, для наследования и так далее.По сути, в С этого ничего нет, но ничто не мешает вам заниматься ОО-программированием на С, учитывая некоторые приемы и самодисциплину (как, несомненно, говорит ваша книга).
Но хотите ли вы?
Мое мнение таково: если вы только учитесь делать ОО-программирование, возможно, имеет смысл научиться этому, будучи «держаться за руку» языком, который уже глубоко включает в себя концепции.Хорошо бы хорошо структурированный, простой и интерактивный язык: если бы у меня был свободный выбор, я бы порекомендовал Ruby, Python или Groovy.Учитывая язык со встроенной ОО-магией, это становится очень очевидным, когда вы делаете ОО-вещи и когда вы просто структурированы, дисциплинированы и хорошо организованы.При переходе с C на другой язык также может быть что-то, чему можно научиться: общие черты, различия.
Некоторые люди рекомендуют изучать C ++ как естественное развитие ОО от C. Я не от всей души поддерживаю это,потому что я считаю C ++ довольно уродливым использованием возможностей ОО на языке, который был уже более «практичным», чем элегантным.При переходе от «стандартного» программирования на С к ОО-программированию, я думаю, программисту следует подумать о том, чтобы, например, отказаться от прямого манипулирования указателями, и, конечно, я считаю обременительным управление памятью для моих данных.Современные ОО-языки автоматизируют это, так что у программиста остается больше клеток мозга для задач более высокого уровня.Привлекательность C ++, конечно же, - грубая скорость.Поскольку он может опуститься до уровня, близкого к металлическому, как C, он обычно является «самым быстрым» из ОО-языков.
Все это говорит: если у вас большой проект, где требуемый язык - C, и вы хотитеиспользовать и практиковать ОО-методы, тогда непременно идите вперед!Если нет, вы могли бы извлечь выгоду из изучения ОО в среде, которая поощряет и поддерживает это, и, возможно, позже вернетесь в С со своими знаниями о ОО.Методы, изложенные в книге, будут иметь для вас смысл, и вы сможете лучше решить, действительно ли вы хотите делать это на C или на «реальном» языке OO.