Бьерн Страуструп - Язык программирования С++. Вступление, глава 1
Страница 15. Краткий обзор С


 

 

КРАТКИЙ ОБЗОР С++


       "Начнем с того, что вздернем
       всех этих законников, языковедов".
        ("Король Генрих VI", действие II)

    В этой главе содержится краткий обзор основных концепций и конструкций
языка С++. Он служит для беглого знакомства с языком. Подробное описание
возможностей языка и методов программирования на нем дается в следующих
главах. Разговор ведется в основном вокруг абстракции данных и
объектно-ориентированного программирования, но перечисляются и основные
возможности процедурного программирования.

1.1 ВВЕДЕНИЕ


    Язык программирования С++ задумывался как язык, который будет:

    - лучше языка С;

    - поддерживать абстракцию данных;

    - поддерживать объектно-ориентированное программирование.

    В этой главе объясняется смысл этих фраз без подробного описания
конструкций языка.

    $$1.2 содержит неформальное описание различий "процедурного",
"модульного" и "объектно-ориентированного" программирования.  Приведены
конструкции языка, которые существенны для каждого из перечисленных стилей
программирования. Свойственный С стиль программирования обсуждается в
разделах "процедурное программирование и "модульное программирование".
Язык С++ - "лучший вариант С". Он лучше поддерживает такой стиль
программирования, чем сам С, причем это делается без потери какой-либо
общности или эффективности по сравнению с С.  В то же время язык C
является подмножеством С++. Абстракция данных и объектно-ориентированное
программирование рассматриваются как "поддержка абстракции данных" и
"поддержка объектно- ориентированного программирования". Первая базируется
на возможности определять новые типы и работать с ними, а вторая - на
возможности задавать иерархию типов.

    $$1.3 содержит описание основных конструкций для процедурного и
модульного программирования. В частности, определяются функции, указатели,
циклы, ввод-вывод и понятие программы как совокупности раздельно
транслируемых модулей. Подробно эти возможности описаны в главах 2, 3 и 4.

    $$1.4 содержит описание средств, предназначенных для эффективной
реализации абстракции данных. В частности, определяются классы, простейший
механизм контроля доступа, конструкторы и деструкторы, перегрузка
операций, преобразования пользовательских типов, обработка особых ситуаций
и шаблоны типов. Подробно эти возможности описаны в главах 5, 7, 8 и 9.

    $$1.5 содержит описание средств поддержки объектно-ориентированного
программирования. В частности, определяются производные классы и
виртуальные функции, обсуждаются некоторые вопросы реализации.  Все это
подробно изложено в главе 6.

    $$1.6 содержит описание определенных ограничений на пути
совершенствования как языков программирования общего назначения вообще,
так и С++ в частности. Эти ограничения связаны с эффективностью, с
противоречащими друг другу требованиями разных областей приложения,
проблемами обучения и необходимостью трансляции и выполнения программ в
старых системах.

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

 
« Предыдущая статья   Следующая статья »