Уилсон М. - C++. Практический подход к решению проблем программирования [2006, DjVu, RUS]

Страницы:  1
Ответить
 

MadS1ayer

Стаж: 17 лет 10 месяцев

Сообщений: 86

MadS1ayer · 24-Май-08 13:16 (17 лет 1 месяц назад, ред. 25-Апр-11 13:56)

C++: практический подход к решению проблем программирования
Год выпуска: 2006
Автор: Уилсон Мэтью
Формат: DjVu
Качество: Отсканированные страницы
Количество страниц: 736
Описание: С++ √ изумительных язык, но не идеальный. Если вы давно занимаетесь разработками на С++, эта книга поможет вам по-новому посмотреть на те сложные проблемы, с которыми приходится сталкиваться при программировании, и освоить мощные методы, которые вы никогда раньше не применяли. Если вы новичок в С++, то научитесь принципам программирования, которые позволят вам более эффективно реализовывать все ваши проекты. В ходе чтения книги вы научитесь:
- преодолевать недостатки системы типов С++;
- обеспечивать выполнение требований проекта программного обеспечения с помощью ограничений, соглашений и утверждений;
- правильно обрабатывать ситуации, не оговоренные стандартом, включая проблемы, связанные с динамическими библиотеками, статическими объектами и поточной организацией вычислений;
- обеспечивать совместимость динамически загружаемых компонентов на уровне двоичных модулей;
- понимать недостатки неявных преобразований и связанные с ними затраты и применять альтернативные подходы;
- повышать совместимость различных компиляторов, библиотек и операционных сред;
- помогать компилятору обнаруживать больше ошибок и работать более эффективно;
- понимать, какие аспекты стиля влияют на надежность;
- применять механизм захвата ресурсов при инициализации при решении различных задач;
- умело обращаться со странной связью, временами возникающей между массивами и указателями;
- использовать шаблонное программирование для повышения гибкости и устойчивости;
- расширять С++, в том числе быстрой конкатенацией строк, настоящими NULL-указателями, гибкими буферами памяти, свойствами, многомерными массивами и диапазонами.
Прилагаемый компакт-диск содержит много различной ценной информации: компиляторы, библиотеки, тестовые программы, инструментальные средства и служебные программы, а также подборку журнальных статей автора.
Доп. информация:
Краткое содержание
скрытый текст
Пролог
Введение: философия неидеального практика
Дефекты, ограничения, определения и рекомендации
Часть 1. Базовые концепции
Глава 1. Принудительное проектирование: ограничения, соглашения и утверждения
...1.1. ╚Яичница с ветчиной╩
...1.2. Соглашения времени компиляции: ограничения
...1.3. Соглашения времени выполнения: предусловия, постусловия и инварианты
...1.4. Утверждения
Глава 2. Проблемы жизненного цикла объекта
...2.1. Жизненный цикл объекта
...2.2. Контроль ваших клиентов
...2.3. Списки инициализации членов и их достоинства
Глава 3. Инкапсуляция ресурсов
...3.1. Таксономия инкапсуляции ресурсов
...3.2. Типы POD
...3.3. Прокси-оболочки
...3.4. Типы RRID
...3.5. Типы RAII
...3.6. RAII: заключение
Глава 4. Инкапсуляция данных и типы значений
...4.1. Таксономия инкапсуляции данных
...4.2. Типы значений и типы сущностей
...4.3. Таксономия типов значений
...4.4. Открытые типы
...4.5. Инкапсулированные типы
...4.6. Типы значений
...4.7. Арифметические типы значений
...4.8. Типы значений: заключение
...4.9. Инкапсуляция: заключение
Глава 5. Модели доступа к объектам
...5.1. Ограниченное время жизни объектов
...5.2. Копирование объектов
...5.3. Непосредственный доступ
...5.4. Совместно используемые объекты
Глава 6. Классы, контролирующие диапазон действия ресурсов
...6.1. Значение
...6.2. Состояние
...6.3. Программные интерфейсы и службы
...6.4. Специальные возможности языка
Часть 2. Выживание в условиях реального мира
Глава 7. Двоичный интерфейс приложения
...7.1. Совместно используемый программный код
...7.2. Требования для двоичного интерфейса языка С
...7.3. Требования С++ для двоичного интерфейса приложения
...7.4. Теперь мне ничто не мешает программировать в стиле С
Глава 8. Переносимые через границы
...8.1. Как сделать таблицы vtable максимально переносимыми?
...8.2. Переносимые таблицы vtable
...8.3. Двоичный интерфейс и объекты, переносимые через границы: заключение
Глава 9. Динамические библиотеки
...9.1. Явный вызов функций
...9.2. Идентичность объектов: единицы компоновки и пространство компоновки
...9.3. Продолжительность жизни
...9.4. Контроль версий
...9.5. Владение ресурсами
...9.6. Динамические библиотеки: заключение
Глава 10. Поточная организация вычислений
...10.1. Синхронизация доступа к целым числам
...10.2. Синхронизация доступа к блокам кода: критические области
...10.3. Эффективность неделимых целочисленных операций
...10.4. Многопоточные расширения
...10.5. Специальная память потока
Глава 11. Статические объекты
...11.1. Нелокальные статические объекты: глобальные объекты
...11.2. Синглетоны
...11.3. Функционально-локальные статические объекты
...11.4. Статические члены
...11.5. Статические объекты: заключение
Глава 12. Оптимизация
...12.1. Встроенные функции
...12.2. Оптимизация возвращаемых значений
...12.3. Оптимизация пустой базы
...12.4. Оптимизация пустых производных классов
...12.5. Предотвращение оптимизации
Часть 3 Языковые проблемы
Глава 13. Фундаментальные типы
...13.1. Могу ли я получить байт?
...13.2. Целые типы фиксированного размера
...13.3. Целые типы большого размера
...13.4. Опасные типы
Глава 14. Массивы и указатели
...14.1. Не повторяйте себя
...14.2. Вырождение массивов в указатели
...14.3. dimensionof()
...14.4. Нельзя передавать массивы функциям
...14.5. Массивы всегда передаются с помощью адреса
...14.6. Массивы унаследованных типов
...14.7. Нельзя иметь многомерные массивы
Глава 15. Значения
...15.1. NULL √ ключевое слово, которого не было
...15.2. Перейдем к ZERO
...15.3. Изгибы ╚истины╩
...15.4. Литералы
...15.5. Константы
Глава 16. Ключевые слова
...16.1. interface
...16.2. temporary
...16.3. owner
...16.4. explicit(_cast)
...16.5. unique
...16.6. final
...16.7. Неподдерживаемые ключевые слова
Глава 17. Синтаксис
...17.1. Компоновка класса
...17.2. Условные выражения
...17.3. for
...17.4. Обозначение переменных
Глава 18. Имена, вводимые typedef
...18.1. Использование typedef для указателей
...18.2. Что содержит определение?
...18.3. Алиасы
...18.4. ╚Настоящие╩ typedef
...18.5. Хороший, плохой и ужасный
Часть 4. Осознанные преобразования
Глава 19. Приведение типов
...19.1. Неявное преобразование
...19.3. Пример приведений в стиле С
...19.4. ╚Стероидные╩ приведения
...19.5. explicit_cast
...19.6. literal_cast
...19.7. union_cast
...19.8. comstl::interface_cast
...19.9. boost::polymorphic_cast
...19.10. Приведение типов: заключение
Глава 20. Прокладки
...20.1. Всеохватность изменений и усиливающаяся гибкость
...20.2. Прокладки атрибутов
...20.3. Логические прокладки
...20.4. Управляющие прокладки
...20.5. Прокладки преобразований
...20.6. Концепции составных прокладок
...20.7. Пространства имен и поиск Кенига
...20.8. Почему не шаблоны свойств?
...20.9. Структурное соответствие
...20.10. Разрушение монолита
...20.11. Прокладки: заключение
Глава 21. Облицовочные классы
...21.1. Облегченный RAII
...21.2. Связывание данных и операций
...21.3. Уточнение концепций
...21.4. Облицовочные классы: заключение
Глава 22. Прикрепляемые классы
...22.1. Добавление функциональности
...22.2. Выбор оболочки
...22.3. Переопределение не виртуальных методов
...22.4. Увеличение возможностей
...22.5. Моделирование полиморфизма на этапе компиляции: реверсивные прикрепляемые классы
...22.6. Параметризованная полиморфная упаковка
...22.7. Прикрепляемые классы: заключение
Глава 23. Шаблонные конструкторы
...23.1. Скрытые недостатки
...23.2. Висячие ссылки
...23.3. Специализация шаблонных конструкторов
...23.4. Прокси аргументов
...23.5. Ориентация аргументов на определенные типы
...23.6. Шаблонные конструкторы: заключение
Часть 5. Операторы
Глава 24. operator bool()
...24.1. operator int() const
...24.2. operator void *() const
...24.3. operator bool() const
...24.4. operator !() √ нет!
...24.5. operator boolean const *() const
...24.6. operator int boolean::*() const
...24.7. Применение операторов в реальных условиях
...24.8. operator!
Глава 25. Быстрая, неагрессивная конкатенация строк
...25.1. fast_string_concatenator<>
...25.2. Производительность
...25.4. Метод посева конкатенации
...25.5. Патологическое применение скобок
...25.6. Стандартизация
Глава 26. Какой ваш адрес?
...26.1. Можно не получить реальный адрес
...26.2. Что происходит во время преобразования?
...26.3. Что мы возвращаем?
...26.4. Какой ваш адрес?: заключение
Глава 27. Операторы индексации
...27.1. Операторы преобразования в указатели и операторы индексации
...27.2. Обработка ошибок
...27.3. Возвращаемое значение
Глава 28. Операторы инкремента
...28.1. Недостающие постфиксные операторы
...28.2. Эффективность
Глава 29. Арифметические типы
...29.1. Определение класса
...29.2. Конструирование по умолчанию
...29.3. Инициализация (конструирование значения)
...29.4. Копирующий конструктор
...29.5. Присваивание
...29.6. Арифметические операторы
...29.7. Операторы сравнения
...29.8. Осуществление доступа к значению
...29.9. sinteger64
...29.10. Усечения, перевод в другие форматы и проверки
...29.11. Арифметические типы: заключение
Глава 30. Быстрое вычисление
Часть 6. Расширение C++
Глава 31. Продолжительность жизни возвращаемых значений
...31.1. Таксономия ╚странностей╩ продолжительности жизни возвращаемых значений
...31.2. Зачем возвращать ссылку?
...31.3. Решение 1 √ integer_to_string<>
...31.4. Решение 2 √ специальная память потока
...31.5. Решение 3 √ расширение RVL
...31.6. Решение 4 √ определение размера статического массива
...31.7. Решение 5 √ прокладки преобразований
...31.8. Производительность
...31.9. RVL: большая победа сборки мусора
...31.10. Потенциальные применения
...31.11. Продолжительность жизни возвращаемых значений: заключение
Глава 32. Память
...32.1. Таксономия памяти
...32.2. Лучший из двух миров
...32.3. Распределители памяти
...32.4. Память: заключение
Глава 33. Многомерные массивы
...33.1. Обеспечение синтаксиса индексации
...33.2. Установка размеров на этапе выполнения программы
...33.3. Установка размеров на этапе компиляции
...33.4. Доступ ко всему массиву
...33.5. Производительность
...33.6. Многомерные массивы: заключение
Глава 34. Функторы и диапазоны
...34.1. Синтаксическая неразбериха
...34.2. for_all() ?
...34.3. Локальные функторы
...34.4. Диапазоны
...34.5. Функторы и диапазоны: заключение
Глава 35. Свойства
...35.1. Расширения компилятора
...35.2. Варианты реализации
...35.3. Свойства-поля
...35.4. Свойства-методы
...35.6. Виртуальные свойства
...35.7. Применение свойств
...35.8. Свойства: заключение
Приложение A. Компиляторы и библиотеки
...A.1. Компиляторы
...A.2. Библиотеки
...A.3. Другие источники
Приложение Б. Остерегайтесь самомнения!
...Б.1. Перегрузка операторов
...Б.2. Когда-то я пожалел о том, что следовал принципу DRY
...Б.3. Параноидальное программирование
...Б.4. Настоящее безумие!
Приложение В. Arturius
Приложение Г. Компакт-диск
Эпилог
Библиография
Предметный указатель
Download
Rutracker.org не распространяет и не хранит электронные версии произведений, а лишь предоставляет доступ к создаваемому пользователями каталогу ссылок на торрент-файлы, которые содержат только списки хеш-сумм
Как скачивать? (для скачивания .torrent файлов необходима регистрация)
[Профиль]  [ЛС] 

begemot099

Стаж: 19 лет 4 месяца

Сообщений: 6


begemot099 · 27-Май-08 16:48 (спустя 3 дня)

Еще одна книга по C++? Почитаем ...
[Профиль]  [ЛС] 

Uruluke

Стаж: 17 лет 9 месяцев

Сообщений: 78

Uruluke · 15-Июн-09 18:04 (спустя 1 год)

Книга хорошая?
[Профиль]  [ЛС] 

Danis_83

Стаж: 15 лет

Сообщений: 6


Danis_83 · 27-Июл-10 13:00 (спустя 1 год 1 месяц)

Почитал малость, толково пишет, но сложновата пока для меня!
[Профиль]  [ЛС] 

NeuronViking

Стаж: 17 лет 9 месяцев

Сообщений: 266


NeuronViking · 11-Янв-11 13:54 (спустя 5 месяцев 15 дней)

книга офигенная! давно что-то подобное искал. спасибо!
[Профиль]  [ЛС] 

Tne3247O

Стаж: 13 лет 11 месяцев

Сообщений: 48


Tne3247O · 27-Май-13 12:27 (спустя 2 года 4 месяца)

Диск есть?
[Профиль]  [ЛС] 

littlegene

Стаж: 16 лет 1 месяц

Сообщений: 2073

littlegene · 13-Ноя-13 12:53 (спустя 5 месяцев 17 дней, ред. 02-Ноя-14 20:46)

Малость устарела, но идеи вечны.
Например статические утверждение нынче на основе массива нулевой размерности не делаются... Компилятор, вроде, такие массивы теперь кушает. Но можно схватывать идеи (по крайней мере из первых глав) и смотреть, как они реализованы в boost и брать реализацию напрямую оттуда, что будет и гибче и надежней.
p.s.
Просто для сведения: мультиплексор компиляторов Arturius, заявленный на компакт диске, фактически отсутствует. Однако, в приложении B автор написал, что если его на компакт диске нет (не успевал к выпуску книги), то можно будет скачать с сети. Однако, на заявленном (arturius.org) сайте его нет (как и самого сайта), а в других сетевых ресурсах, он , похоже, когда-то был, однако во всех этих местах он полностью снесен на настоящий момент. Как это понимать - фиг догадаешься.
[Профиль]  [ЛС] 

eugensk00

Стаж: 14 лет 1 месяц

Сообщений: 7


eugensk00 · 17-Апр-19 07:14 (спустя 5 лет 5 месяцев, ред. 17-Апр-19 07:14)

Есть у меня в бумажном виде, но без CD, и нигде не могу его найти. Добавьте, пожалуйста, его в раздачу.
[Профиль]  [ЛС] 

littlegene

Стаж: 16 лет 1 месяц

Сообщений: 2073

littlegene · 24-Апр-19 19:15 (спустя 7 дней, ред. 09-Май-19 13:11)

eugensk00 писал(а):
77221686Есть у меня в бумажном виде, но без CD, и нигде не могу его найти. Добавьте, пожалуйста, его в раздачу.
Если что, то я себе сохранил архив содранный с CD. Образ делать не стал.
https://yadi.sk/d/PHDF2FIFwux5HQ
p.s.
Доступ закрыл. Полагаю, кому нужно - скачали.
[Профиль]  [ЛС] 

eugensk00

Стаж: 14 лет 1 месяц

Сообщений: 7


eugensk00 · 26-Май-19 17:37 (спустя 1 месяц 1 день, ред. 26-Май-19 17:37)

Ой, а можно еще раз расшарить для слоупока? Теперь буду изо всех сил караулить
[Профиль]  [ЛС] 

littlegene

Стаж: 16 лет 1 месяц

Сообщений: 2073

littlegene · 29-Май-19 16:35 (спустя 2 дня 22 часа)

eugensk00
https://yadi.sk/d/sZvLRyQg7s5QCw
Отпишитесь, как скачаете.
[Профиль]  [ЛС] 

77bbbbbbb

Стаж: 14 лет 10 месяцев

Сообщений: 47


77bbbbbbb · 03-Сен-19 14:33 (спустя 3 месяца 4 дня, ред. 03-Сен-19 14:33)

Спасибо добрым людям за диск
[Профиль]  [ЛС] 

eugensk00

Стаж: 14 лет 1 месяц

Сообщений: 7


eugensk00 · 17-Сен-19 15:02 (спустя 14 дней)

Диск на https://www. СПАМ
[Профиль]  [ЛС] 

littlegene

Стаж: 16 лет 1 месяц

Сообщений: 2073

littlegene · 21-Сен-19 18:50 (спустя 4 дня)

eugensk00
Ну и чем он отличается от того что я расшаривал, и Вы скачивали?
[Профиль]  [ЛС] 

eugensk00

Стаж: 14 лет 1 месяц

Сообщений: 7


eugensk00 · 25-Сен-19 09:22 (спустя 3 дня, ред. 25-Сен-19 09:22)

littlegene
Это он и есть, спасибо еще раз!
Просто расшарил его дальше, чтобы находился, и не нужно было держать диск открытым.
[Профиль]  [ЛС] 

littlegene

Стаж: 16 лет 1 месяц

Сообщений: 2073

littlegene · 25-Сен-19 11:47 (спустя 2 часа 25 мин.)

eugensk00 писал(а):
78026704littlegene
Это он и есть, спасибо еще раз!
Просто расшарил его дальше, чтобы находился, и не нужно было держать диск открытым.
Ну так это ж было для ВАС ). То есть для тех, кто имеет бумажный экземпляр книги (бумажный, Карл!), но утратил этот диск.
А вы его российским студентам на твирпхс подарили.
Ну да ладно, будем считать что это был ваш экземпляр диска.
Я как-то больше уважаю авторское право...
[Профиль]  [ЛС] 

eugensk00

Стаж: 14 лет 1 месяц

Сообщений: 7


eugensk00 · 25-Сен-19 17:38 (спустя 5 часов, ред. 25-Сен-19 17:38)

Хорошо, пусть будет мой диск (где-то же он существует!).
Вообще, я считаю, что диски к книгам должны быть доступны на сайте издательства (платно или бесплатно, но доступны), иначе их книги превращаются в тыкву. Если издательство не справилось, приходится помогать.
[Профиль]  [ЛС] 
 
Ответить
Loading...
Error