function changeText() {
return document.querySelector("#button").innerHTML = "New text";
}
document.addEventListener("click", changeText);
<button type="button" id="button">Text</button>
Нет, это не так. Вы можете написать действительную, хорошо закодированную программу на C ++ с превосходным стилем, даже не используя объект.
C ++ поддерживает объектно-ориентированное программирование, но объектно-ориентированное программирование не является неотъемлемой частью языка. Фактически, функция main не является членом объекта.
В smalltalk или Java вы не можете завязать шнурки (или написать «Hello, world») без хотя бы одного класса.
(Of Конечно, можно спорить и о том, что Java является полностью объектно-ориентированным языком, потому что его примитивы (скажем, int) не являются объектами.)
Причина, почему C++ не является языком ООП, состоит главным образом в том, потому что это пропускает понятие инкапсуляции. Вы не можете определить интерфейс/контракт к своему объекту из-за указателей, которые дают Вам полный контроль на всем.
C ++ содержит диалект 'C' в качестве подмножества, что позволяет использовать чисто процедурный стиль кода.
Большой аргумент против объявления C ++ «чистым» объектно-ориентированным интерфейсом состоит в том, что для него по-прежнему требуется как минимум один не-объектно-ориентированный бит, main ()
, и что не все является объектом ( int
, long
и др.).
Он также раскрывает состояние объекта для манипуляций без использования парадигмы передачи сообщений ( общественные члены). Это нарушает инкапсуляцию объектов.
Java, с другой стороны, имеет main ()
как просто статический метод класса, поэтому он ближе, но в нем все еще есть не объектные вещи.
Smalltalk - это лингва-франка, обычно считающийся чистейшим из чистых, но я не знаю о нем достаточно, чтобы комментировать.
Я,
Определить OOL. Если вы имеете в виду использование классов и т. Д., То C ++ поддерживает, помимо прочего, объектно-ориентированный стиль программирования. Нет ничего, что мешает вам не использовать классы. Java OTOH допускает только классы. (Да, я знаю, что Java поддерживает FP.)
Короткий ответ: нет - C ++ не является полностью объектно-ориентированным языком. Вы можете написать "не совсем" ООП, используя C ++, даже не прибегая к использованию подмножества C. Одним из таких примеров является ваш основной метод, который не содержится ни в одном классе.
Основная причина заключается в том, что C ++ произошел от C - когда Страуструп создавал язык, он стремился создать новую версию C (с классами) . фактически он пытался представить свое творение как новую разновидность C (C84).
C ++ не является чистым объектно-ориентированным языком, и, как уже упоминалось, ничто не заставляет вас использовать концепции ООП в C ++. C ++ - это то, что вы называете гибридным объектно-ориентированным языком, поскольку он основан на C, который является чисто процедурным языком.
Примерами чисто объектно-ориентированных языков являются C # и JAVA.
конечно нет !! Он поддерживает внутренние типы данных.
Нет, это не чисто объектно-ориентированный язык. В частности, примитивные типы данных в C ++ имеют правила, которые часто отличаются от не примитивных типов данных. Кроме того, можно иметь функции, которые вообще не связаны с каким-либо типом данных. Существует множество других причин, по которым C ++ не является чистым объектно-ориентированным языком, но это две из основных причин.
Ни Java, ни C # не являются чистыми объектно-ориентированными языками, потому что у них есть примитивные типы данных, которые не подчиняются та же семантика, что и у типов данных «объект».