home   |   А-Я   |   A-Z   |   меню

Страустрап Бьярн + Хилл Мюррей

C++

Оценка: 5.0 (2)
Annotation:
С++ это универсальный язык программирования, задуманный так, чтобы сделать программирование более приятным для серьезного программиста. За исключением второстепенных деталей С++ является надмножеством языка программирования C. Помимо возможностей, которые дает C, С++ предоставляет гибкие и эффективные средства определения новых типов. Используя определения новых типов, точно отвечающих концепциям приложения, программист может разделять разрабатываемую программу на легко поддающиеся контролю части. Такой метод построения программ часто называют абстракцией данных. Информация о типах содержится в некоторых объектах типов, определенных пользователем. Такие объекты просты и надежны в использовании в тех ситуациях, когда их тип нельзя установить на стадии компиляции. Программирование с применением таких объектов часто называют объектно-ориентированным. При правильном использовании этот метод дает более короткие, проще понимаемые и легче контролируемые программы.
Ключевым понятием С++ является класс. Класс это тип, определяемый пользователем. Классы обеспечивают сокрытие данных, гарантированную инициализацию данных, неявное преобразование типов для типов, определенных пользователем, динамическое задание типа, контролируемое пользователем управление памятью и механизмы перегрузки операций. С++ предоставляет гораздо лучшие, чем в C, средства выражения модульности программы и проверки типов. В языке есть также усовершенствования, не связанные непосредственно с классами, включающие в себя символические константы, inline-подстановку функций, параметры функции по умолчанию, перегруженные имена функций, операции управления свободной памятью и ссылочный тип. В С++ сохранены возможности языка C по работе с основными объектами аппаратного обеспечения (биты, байты, слова, адреса и т.п.). Это позволяет весьма эффективно реализовывать типы, определяемые пользователем.
С++ и его стандартные библиотеки спроектированы так, чтобы обеспечивать переносимость. Имеющаяся на текущий момент реализация языка будет идти в большинстве систем, поддерживающих C. Из С++ программ можно использовать C библиотеки, и с С++ можно использовать большую часть инструментальных средств, поддерживающих программирование на C.
Эта книга предназначена главным образом для того, чтобы помочь серьезным программистам изучить язык и применять его в нетривиальных проектах. В ней дано полное описание С++, много примеров и еще больше фрагментов программ.
Read this book now
Download in formats: fb2 202k, lrf 486k, epub 663k, mobi 645k, txt, html

hide Table of Contents

  1. Предисловие
  2. Благодарности
  3. Заметки для читателя
  4. Структура этой книги
  5. Замечания по реализации
  6. Упражнения
  7. Замечания по проекту языка
  8. Исторические замечания
  9. Эффективность и структура
  10. Философские замечания
  11. Размышления о программировании на С++
  12. Правила правой руки
  13. Замечания для программистов на C
  14. Библиографические ссылки
  15. Глава 1 Турне по С++
  16. 1.1 Введение
  17. 1.1.1 Вывод
  18. 1.1.2 Компиляция
  19. 1.1.3 Ввод
  20. 1.2 Комментарии
  21. 1.3 Типы и описания
  22. 1.3.1 Основные типы
  23. 1.3.2 Производные типы
  24. 1.4 Выражения и операторы
  25. 1.4.1 Выражения
  26. 1.4.2 Операторы выражения
  27. 1.4.3 Пустой оператор
  28. 1.4.4 Блоки
  29. 1.4.5 Оператор if
  30. 1.4.6 Операторы switch
  31. 1.4.7 Оператор while
  32. 1.4.8 Оператор for
  33. 1.4.9 Описания
  34. 1.5 Функции
  35. 1.6 Структура программы
  36. 1.7 Классы
  37. 1.8 Перегрузка операций
  38. 1.9 Ссылки
  39. 1.10 Конструкторы
  40. 1.11 Вектора
  41. 1.12 Inline- подстановка
  42. 1.13 Производные классы
  43. 1.14 Еще об операциях
  44. 1.15 Друзья (friend)
  45. 1.16 Обобщенные вектора
  46. 1.17 Полиморфные вектора
  47. 1.18 Виртуальные функции
  48. Глава 2 Описания и константы
  49. 2.1 Описания
  50. 2.1.1 Область видимости
  51. 2.1.2 Объекты и адреса (Lvalue)
  52. 2.1.3 Время жизни
  53. 2.2 Имена
  54. 2.3 Типы
  55. 2.3.1 Основные типы
  56. 2.3.2 Неявное преобразование типа
  57. 2.3.3 Производные типы
  58. 2.3.4 Тип void
  59. 2.3.5 Указатели
  60. 2.3.6 Вектора
  61. 2.3.7 Указатели и вектора
  62. 2.3.8 Структуры
  63. 2.3.9 Эквивалентность типов
  64. 2.3.10 Ссылки
  65. 2.3.11 Регистры
  66. 2.4 Константы
  67. 2.4.1 Целые константы
  68. 2.4.2 Константы с плавающей точкой
  69. 2.4.3 Символьные константы
  70. 2.4.4 Строки
  71. 2.4.5 Ноль
  72. 2.4.6 Const
  73. 2.4.7 Перечисления
  74. 2.5 Экономия пространства
  75. 2.5.1 Поля
  76. 2.5.2 Объединения
  77. 2.6 Упражнения
  78. Глава 3 Выражения и операторы
  79. 3.1 Настольный калькулятор
  80. 3.1.1 Программа синтаксического разбора
  81. 3.1.2 Функция ввода
  82. 3.1.3 Таблица имен
  83. 3.1.4 Обработка ошибок
  84. 3.1.5 Драйвер
  85. 3.1.6 Параметры командной строки
  86. 3.2 Краткая сводка операций
  87. 3.2.1 Круглые скобки
  88. 3.2.2 Порядок вычисления
  89. 3.2.3 Увеличение и уменьшение*
  90. 3.2.4 Побитовые логические операции
  91. 3.2.5 Преобразование типа
  92. 3.2.6 Свободная память
  93. 3.3 Сводка операторов
  94. 3.3.1 Проверки
  95. 3.3.2 Goto
  96. 3.4 Комментарии и выравнивание
  97. 3.5 Упражнения
  98. Глава 4 Функции и файлы
  99. 4.1 Введение
  100. 4.2 Компоновка
  101. 4.3 Заголовочные файлы
  102. 4.3.1 Один заголовочный файл
  103. 4.3.2 Множественные заголовочные файлы
  104. 4.3.3 Сокрытие данных
  105. 4.4 Файлы как модули
  106. 4.5 Как создать библиотеку
  107. 4.6 Функции
  108. 4.6.1 Описания функций
  109. 4.6.2 Определения функций
  110. 4.6.3 Передача параметров
  111. 4.6.4 Возврат значения
  112. 4.6.5 Векторные параметры
  113. 4.6.6 Параметры по умолчанию
  114. 4.6.7 Перегрузка имен функций
  115. 4.6.8 Незаданное число параметров
  116. Глава 5 Классы
  117. 5.1 Знакомство и краткий обзор
  118. 5.2 Классы и члены
  119. 5.2.1 Функции члены
  120. 5.2.2 Классы
  121. 5.2.3 Ссылки на себя
  122. 5.2.4 Инициализация
  123. 5.2.5 Очистка
  124. 5.2.6 Inline
  125. 5.3 Интерфейсы и реализации
  126. 5.3.1 Альтернативные реализации
  127. 5.3.2 Законченный класс
  128. 5.4 Друзья и объединения
  129. 5.4.1 Друзья
  130. 5.4.2 Уточнение* имени члена
  131. 5.4.3 Вложенные классы
  132. 5.4.4 Статические члены
  133. 5.4.5 Указатели на члены
  134. 5.4.6 Структуры и объединения
  135. 5.5 Конструкторы и деструкторы
  136. 5.5.1 Предостережение
  137. 5.5.2 Статическая память
  138. 5.5.3 Свободная память
  139. 5.5.4 Объекты класса как члены
  140. 5.5.5 Вектора объектов класса
  141. 5.5.6 Небольшие объекты
  142. 5.5.7 Предостережение
  143. 5.5.8 Объекты переменного размера
  144. 5.6 Упражнения
  145. Глава 6 Перегрузка операций
  146. 6.1 Введение
  147. 6.2 Функции операции
  148. 6.2.1 Бинарные и унарные операции
  149. 6.2.2 Предопределенный смысл операций
  150. 6.2.3 Операции и определяемые пользователем типы
  151. 6.3 Определяемое пользователем преобразование типа
  152. 6.3.1 Конструкторы
  153. 6.3.2 Операции преобразования
  154. 6.3.3 Неоднозначности
  155. 6.4 Константы
  156. 6.5 Большие объекты
  157. 6.6 Присваивание и инициализация
  158. 6.7 Индексирование
  159. 6.8 Вызов функции
  160. 6.9 Класс String
  161. 6.10 Друзья и члены
  162. 6.11 Предостережение
  163. 6.12 Упражнения
  164. Глава 7 Производные классы
  165. 7.1 Введение
  166. 7.2 Производные классы
  167. 7.2.1 Построение производного класса
  168. 7.2.2 Функции члены
  169. 7.2.3 Видимость
  170. 7.2.4 Указатели
  171. 7.2.5 Иерархия типов
  172. 7.2.6 Конструкторы и деструкторы
  173. 7.2.7 Поля типа
  174. 7.2.8 Виртуальные функции
  175. 7.3 Альтернативные интерфейсы
  176. 7.3.1 Интерфейс
  177. 7.3.2 Реализация
  178. 7.3.3 Как этим пользоваться
  179. 7.3.4 Обработка ошибок
  180. 7.3.5 Обобщенные классы
  181. 7.3.6 Ограниченные интерфейсы
  182. 7.4 Добавление к классу
  183. 7.5 Неоднородные списки
  184. 7.6 Законченная программа
  185. 7.6.1 Администратор экрана
  186. 7.6.2 Библиотека фигур
  187. 7.6.3 Прикладная программа
  188. 7.7 Свободная память
  189. 7.8 Упражнения
  190. Глава 8 Потоки
  191. 8.1 Введение
  192. 8.2 Вывод
  193. 8.2.1 Вывод встроенных типов
  194. 8.2.2 Вывод определяемых пользователем типов
  195. 8.2.3 Некоторые подробности разработки
  196. 8.2.4 Форматированный вывод
  197. 8.2.5 Виртуальная функция вывода
  198. 8.3 Файлы и потоки
  199. 8.3.1 Инициализация потоков вывода
  200. 8.3.2 Закрытие потоков вывода
  201. 8.3.3 Открытие файлов
  202. 8.3.4 Копирование потоков
  203. 8.4 Ввод
  204. 8.4.1 Ввод встроенных типов
  205. 8.4.2 Состояния потока
  206. 8.4.3 Ввод типов, определяемых пользователем
  207. 8.4.4 Инициализация потоков ввода
  208. 8.5 Работа со строками
  209. 8.6 Буферизация
  210. 8.7 Эффективность
  211. 8.8 Упражнения
  212. Справочное руководство
  213. 1. Введение
  214. 2. Договоренности о лексике
  215. 2.1 Комментарии
  216. 2.2 Идентификаторы (имена)
  217. 2.3 Ключевые слова
  218. 2.4 Константы
  219. 2.4.1 Целые константы
  220. 2.4.2 Явно заданные длинные константы
  221. 2.4.3 Символьные константы
  222. 2.4.4 Константы с плавающей точкой
  223. 2.4.5 Перечислимые константы
  224. 2.4.6 Описанные константы
  225. 2.5 Строки
  226. 2.6 Харктеристики аппаратного обеспечения
  227. 3. Запись синтаксиса
  228. 4. Имена и типы
  229. 4.1 Область видимости
  230. 4.2 Определения
  231. 4.3 Компоновка
  232. 4.4 Классы памяти
  233. 4.5 Основные типы
  234. 4.6 Производные типы
  235. 5. Объекты и Lvalue (адреса)
  236. 6. Преобразования
  237. 6.1 Символы и целые
  238. 6.2 Float и Double
  239. 6.3 Плавающие и целые
  240. 6.4 Указатели и целые
  241. 6.5 Unsigned
  242. 6.6 Арифметические преобразования
  243. 6.7 Преобразования указателей
  244. 6.8 Преобразования ссылок
  245. 7. Выражения
  246. 7.1 Основные выражения
  247. 7.2 Унарные операции
  248. 7.2.1 Увеличение и уменьшение
  249. 7.2.2 Sizeof
  250. 7.2.3 Явное преобразование типа
  251. 7.2.4 Свободная память
  252. 7.3 Мультипликативные операции
  253. 7.4 Аддитивные операции
  254. 7.5 Операции сдвига
  255. 7.6 Операции отношения
  256. 7.7 Операции равенства
  257. 7.8 Операция побитовое И
  258. 7.9 Операция побитовое исключающее ИЛИ
  259. 7.10 Операция побитовое включающее ИЛИ
  260. 7.11 Операция логическое И
  261. 7.12 Операция логическое ИЛИ
  262. 7.13 Условная операция
  263. 7.14 Операции присваивания
  264. 7.15 Операция запятая
  265. 7.16 Перегруженные операции
  266. 7.16.1 Унарные операции
  267. 7.16.2 Бинарные операции
  268. 7.16.3 Особые операции
  269. 8. Описания
  270. 8.1 Спецификаторы класса памяти
  271. 8.2 Спецификаторы типа
  272. 8.3 Описатели
  273. 8.4 Смысл описателей
  274. 8.4.1 Примеры
  275. 8.4.2 Массивы, указатели и индексирование
  276. 8.5 Описания классов
  277. 8.5.1 Статические члены
  278. 8.5.2 Функции члены
  279. 8.5.3 Производные классы
  280. 8.5.4 Виртуальные функции
  281. 8.5.5 Конструкторы
  282. 8.5.6 Преобразования
  283. 8.5.7 Деструкторы
  284. 8.5.8 Свободная память
  285. 8.5.9 Видимость имен членов
  286. 8.5.10 Друзья
  287. 8.5.11 Функция операция
  288. 8.5.12 Структуры
  289. 8.5.13 Объединения
  290. 8.5.14 Поля бит
  291. 8.5.15 Вложенные классы
  292. 8.6 Инициализация
  293. 8.6.1 Список инициализаторов
  294. 8.6.2 Объекты классов
  295. 8.6.3 Ссылки
  296. 8.6.4 Массивы символов
  297. 8.7 Имена типов
  298. 8.8 Typedef – определение типа
  299. 8.9 Перегруженные имена функций
  300. 8.10 Описания перечислений
  301. 8.11 Описание Asm
  302. 9. Операторы
  303. 9.1 Оператор выражение
  304. 9.2 Составной оператор, или блок
  305. 9.3 Условный оператор
  306. 9.4 Оператор While
  307. 9.5 Оператор Do
  308. 9.6 Оператор For
  309. 9.7 Оператор Switch
  310. 9.8 Оператор Break
  311. 9.9 Оператор Continue
  312. 9.10 Оператор Return
  313. 9.11 Оператор Goto
  314. 9.12 Помеченные операторы
  315. 9.13 Пустой оператор
  316. 9.14 Оператор описание
  317. 10. Определения функций
  318. 11. Командные строки компилятора
  319. 11.1 Замена лексем
  320. 11.2 Включение файлов
  321. 11.3 Условная компиляция
  322. 11.4 Управление строкой
  323. 12. Константные выражения
  324. 13. Соображения мобильности
  325. 14. Краткое изложение синтаксиса
  326. 14.1 Выражения
  327. 14.2 Описания
  328. 14.3 Операторы
  329. 14.4 Внешние определения
  330. 14.5 Препроцессор
  331. 15. Отличия от C
  332. 15.1 Расширения
  333. 15.2 Сводка несовместимостей
  334. 15.3 Анахронизмы


Rate this book  


Reviews


Enter your name:     Rate this book

Enter your comments or review:


получать комментарии о книге C++ на e-mail

Anti-spam code Anti spam Capcha