ОО - это в основном образ мыслей. Вы можете программировать ОО на C (если вы действительно хотите ...), и вы можете прекрасно иметь процедурный код на C ++ / Java; Я имею в виду, что даже если вы используете классы на поверхности, это все равно может быть процедурным.
Идея OO - абстракция государства. Вместо «мышления» в терминах «группировки данных» вы «мыслите» в терминах «объектов», где объект является «интерфейсом» для «группировки данных и способов манипулирования этими данными».
Все это звучит философски, потому что это .
Здесь есть, что сказать, и это нельзя сказать в небольшом SO сообщении, поэтому я оставлю это здесь.
ОБНОВЛЕНИЕ
Как уже упоминалось в ответа Фланагана , ОО-языки реализуют конструкции, использующие эту абстракцию.
Я имею в виду, что вы могли бы технически «взломать» классы и полиморфизм с точки зрения структур, функций и указателей на функции.
Вот пример OO в C
Вы можете выполнить слияние как обычно, а затем выполнить рекурсивное возвращение ( svn revert -R somefolder
) для папки, в которой вы не хотите никаких изменений перед фиксацией.
Имейте в виду, что это внесет неточности в mergeinfo. Subversion будет думать, что определенные изменения были объединены в "какую-то папку", хотя на самом деле это не так. Это вызовет некоторые интересные проблемы, если вы все же захотите объединить эти изменения позже.
edit : обратите внимание, что выполнение возврата к некоторой папке неявно удалит все ожидающие конфликты в этой папке. Эти конфликты не вызывают «страданий».
См. Этот ответ о различных способах игнорирования папок / каталогов и их содержимого: