Штерн В. - Основы C++. Методы программной инженерии - 2003
.pdf% 860 3 |
Часть !V # Расширенное использование С^-^- |
Java прост. В нем отсутствуют многие возможности С4- + , порождающие ошибки: перегрузка операторных функций, групповые шаблоны, множественное наследование, передача параметров по указателю, операции над незащищенными массивами, связанные с указателями, "дружественные" классы и функции, гло бальные функции и переменные с именами, действующими в рамках проекта. (Каждая функция Java, включая main, должна быть членом некоторого класса.)
В Java отсутствует препроцессор с его макросами, включаемыми файлами
иусловной компиляцией. Не требуются прототипы функций — главный источник проблем в С+-Ь. Компилятору Java известно, где размещаются библиотеки.
Java реализует объектно-ориентированные возможности, которые отсутствуют
вC+ + . Все функции являются виртуальными функциями по умолчанию. Наследо вание поддерживает как сокрытие базовых функций в производных классах, так
иперегрузку, если различаются сигнатуры. Классы могут объединяться в пакеты. В Java имеется конструктор интерфейса, который лучше управляет использовани ем объектов одного класса, когда ожидаются объекты другого класса, чем насле
дование. В Java поддерживаются потоки, что помогает реализовать параллельное выполнение.
Вместо генерации машинно-зависимого объектного кода компилятор Java ге нерирует так называемый байт-код, для выполнения которого требуется интерпре татор. Это выглядит как помеха, не так ли? Тем не менее это означает, что байт-код Java может выполняться на любой платформе, на которой установлен интерпретатор Java. Программа, скомпилированная в среде Solaris, может выпол няться на любой UNIX, PC или Mac машине без каких-либо изменений. Програм мисты на C + + не могут даже мечтать о таком уровне переносимости.
Именно поэтому Java стал языком Интернета. Байт-код, сгенерированный на одной платформе, может загружаться с другой платформы и выполняться, при чем даже не запрашивая платформу сервера. Программы на Java используются и в неоднородных, и в однородных сетях.
Java поставляется с огромной библиотекой классов GUI. Действительно, изу чение этих классов — задача не из приятных. Однако начинающий программист может создать имеющее смысл приложение на Java так же, как и написать при ложение на Visual Basic, и намного быстрее, чем создать простое приложение на C + + .
В Интернете Java абсолютный победитель. В работе с базами данных предпоч тение отдается языку C+ + .
Итоги
Мы подошли к концу. Хотелось быть честным относительно преимуществ и недостатков C+ + . Замечательные возможности назывались замечательными. О возможностях, имеющих недостатки, говорилось, что они имеют недостатки. Об опасных возможностях пре;1упреждалось, что они опасны.
Однако хотелось показать, что эффективное использование C + + требует изменения самого подхода к программированию. Необходимо продумать рас пределение обязанностей между различными частями программы и передачу их в серверные классы. Кроме того, необходимо оценить проектные решения, кото рые были бы понятны сопровождающему программисту непосредственно в коде, без комментариев. Попытайтесь использовать объекты некоторого класса там, где ожидаются объекты другого класса.
С помощью таких принципов программной инженерии можно создавать на дежные, переносимые, повторно используемые и сопровождаемые приложения на C+ + . Делайте это с удовольствием, поскольку программирование на языке C+ + должно приносить радость.
Желаю удачи!