Является ли язык программирования C объектно-ориентированным? - PullRequest
41 голосов
/ 14 июля 2010

Я говорил с коллегой о C и C ++, и он утверждал, что C является объектно-ориентированным, но я утверждал, что это не так. Я знаю, что вы можете делать объектно-ориентированные вещи в C, но C ++ - это настоящий объектно-ориентированный язык.

Что ты думаешь?

Кроме того, это вызвало дискуссию о том, кто решает, что значит быть объектно-ориентированным, и что трудно сказать, что действительно означает объектно-ориентированное. Что ты думаешь по этому поводу?

Ответы [ 12 ]

1 голос
/ 14 июля 2010

Если ваш друг не говорил об Objective C (расширенный набор O для C), то нет, C не является языком OO.Вы можете реализовать концепции OO, используя C (это то, что делал старый компилятор Cfront C ++, он переводил C ++ в C), но это не делает C языком OO, так как он не обеспечивает поддержку стандартных методов OO, таких как полиморфизм или инкапсуляция.

Да, вы можете написать программный ОО-стиль на С, особенно с либеральным (не-) использованием макросов, но как человек, который видел результаты некоторых из этих попыток, я настоятельно рекомендую использовать более качественныеподходящий язык.

0 голосов
/ 14 июля 2010

Нет, это не так, ваш друг не прав.

...