А.В. Столяров - Введение в язык Си++ (1114949), страница 27
Текст из файла (страница 27)
Воспользоваться для этого можно практическилюбой книгой по С и + + (есть даже книги, специально посвящённые STL)и, конечно, компьютером, поскольку без практических навыков никакиезнания в области программирования не будут ничего стоить.Если же немедленно устраиваться на работу программистом в вашипланы пока не входит, я настоятельно советую не браться за изучениеSTL и не использовать его по крайней мере до тех пор, пока вы не напишете на С и + + одну-две практически применимые программы (под таковыми можно понимать программы, которые реально использует кто-токроме их автора). После этого можно будет сказать, что основы языкаС и + + вы знаете и к изучению STL подойдёте осознанно и с достаточнымдля этого опытом.В качестве дополнительного чтения могу посоветовать книгуДжеффа Элджера, которая в оригинале называется « C + + for realprogrammers», а в русском переводе вышла в серии «Библиотека программиста» под заголовком «С и + + » (СПб: Питер, 2001; куда при переводе делись остальные слова из оригинального названия — вопрос киздателям).
Если вам удастся понять эту книгу, вас останется толькопоздравить: вы действительно поняли, что такое С и + + . Отмечу, что Элджер ни словом не обмолвился про STL.Помните: чем позднее вы начнёте изучение STL, тем меньше негативного влияния окажет этот неуклюжий монстр на ваши мозги.125СодержаниеП р ед и слови е дл я п р е п о д а в а т е л е й ...................................................................П р ед и слови е дл я с т у д е н т о в ............................................................................1. Введение358§ 1.1. Что такое О О П .........................................................................................§ 1.2.
Язык Си4—Ь и его совместимость с Си .............................................2. Абстрактные типы данных и инкапсуляция§ 2.1. Методы, объекты и з а щ и т а ................................................................§2.1.1. Функции-члены (методы) ......................................................§ 2.1.2. Указатель t h i s .........................................................................§2.1.3. Защита. Понятие конструктора .........................................§2.1.4.
Зачем нужна з а щ и т а ................................................................§2.1.5. К л а с с ы .........................................................................................§ 2.2. Переопределение символов стандартных операций ...................§ 2.3. Перегрузка имён функций ................................................................§ 2.4. Конструктор умолчания.
Массивы о б ъ е к т о в ................................§ 2.5. Конструкторы преобразован ия.........................................................§ 2.6. Ссылки ...................................................................................................§ 2.7. Модификатор const ............................................................................§ 2.8. Константные методы .........................................................................§ 2.9. Деструкторы .........................................................................................§ 2.10. Операции работы с динамической п а м я т ь ю ................................§ 2.11.
Конструктор копировани я................................................................§ 2.12. Временные и анонимные объекты ................................................§ 2.13. Значения параметров по у м ол ч ан и ю .............................................§2.13.1. Параметры функций со значениями по умолчанию . .§2.13.2. Ещё раз о видах конструкторов.........................................§2.14. Неявные конструкторы ...................................................................§ 2.15.
Описание тела метода вне класса. Раскрытие области видимости ............................................................................................................§ 2.16. Инициализация членов класса в к о н с тр у к то р е .........................§ 2.17. Описание символов операций вне класса ...................................§ 2.18. Дружественные функции и к л а с с ы ................................................§2.19. Особенности переопределения некоторых операций ................§2.19.1.
Переопределение операций п р и сваи ван и я......................§2.19.2. Переопределение операции индексирования...................§ 2.19.3. Переопределение операций ++ и - - ...................................126810121212131417202123242527293234353639414142434446484951515355§ 2.19.4. Переопределение операции - > ................................................§ 2.19.5. Переопределение операции вызова функции ...................§ 2.19.6. Переопределение операции преобразования т и п а .............2.20.
Пример: разреженный м а с с и в .............................................................2.21. Статические поля и м е т о д ы ................................................................§ 2.21.1. Статические поля и особенности их определения.............§ 2.21.2. Статические методы ................................................................3. Обработка исключительных ситуаций§3.1.§3.2.§ 3.3.§ 3.4.§3.5.§ 3.6.§3.7.§ 3.8.Ошибочные ситуации и проблемы их о б р аб о тк и .............................Общая идея механизма исклю чений...................................................Возбуждение исклю чений......................................................................Обработка исключений .........................................................................Обработчики с многоточием ................................................................Объект класса в роли исключения ...................................................Автоматическая очистка....................................................................Преобразования типов в обработчиках исклю чений......................4.
Наследование и полиморфизм5759606267676971717375767880838385§ 4.1. Иерархические предметные о б л а с т и ................................................... 85§4.2. Наследование структур данных и полиморфизм а д р е с о в ............. 86§ 4.3. Наследование и методы; конструкторы и д естр у к то р ы ................
88§ 4.4. Наследование и защита ......................................................................... 90§4.5. Виртуальные функции ......................................................................... 91§ 4.6. Чисто виртуальные функции. Абстрактные к л а с с ы ...................... 96§4.7. Наследование ради частного случая конструирования ................ 99§ 4.8. Виртуальный д е с т р у к т о р .........................................................................101§ 4.9. Ещё о полиморфизме ............................................................................... 1034.10. Проблема одинаковых имён при наследовании. Автоматическоесокрытие имён ............................................................................................
1044.11. Теоретико-множественное описание н асл ед о ван и я......................... 1064.12. Операции приведения типа ...................................................................1074.13. Ещё о преобразовании типов в обработчиках исключений . . . 1105. Шаблоны§5.1.§5.2.§5.3.§ 5.4.112Шаблоны ф у н к ц и й ......................................................................................113Шаблоны классов ......................................................................................115Специализация ш а б л о н о в .........................................................................
117Константные выражения в роли параметров шаблона ...................120Ч т о д а л ь ш е ( в м е с т о п о сл есл о в и я)125Издание осуществлено при поддержке ООО «Юниконтроллерз»Научить компьютер варить кофе?Попро си тьком пью тер о тп ереть д в ерь ?Отправить компьютер поливать огород?Посадить компьютер на цепьи заставить лаять?как пофиг делать!™ — о устройствами от«Юниконтроллерз »http://www.unicontrollers.comВсё программное обеспечение, включая прошивки устройств,распространяется в исходных текстах под лицензией GNU GPL.Перекомпилированное программное обеспечение доступно для Linux иWindows, не требует инсталляции, не нуждается в драйверах.I BEWARE OF PROGRAMMERS WHO CARRY SCREWDRIVERS I.