Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Штерн В. - Основы C++. Методы программной инженерии - 2003

.pdf
Скачиваний:
238
Добавлен:
13.08.2013
Размер:
28.32 Mб
Скачать

% 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+ + должно приносить радость.

Желаю удачи!

Соседние файлы в предмете Программирование на C++