Главная » Просмотр файлов » Б. Страуструп - Дизайн и Эволюция C++. 2006

Б. Страуструп - Дизайн и Эволюция C++. 2006 (1160775), страница 46

Файл №1160775 Б. Страуструп - Дизайн и Эволюция C++. 2006 (Б. Страуструп - Дизайн и Эволюция C++. 2006) 46 страницаБ. Страуструп - Дизайн и Эволюция C++. 2006 (1160775) страница 462019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 46)

Полагаю, чта многие преподаватели, авторы учебников и участники электронных конференций недооценивают важность данного факта, ведь кажется, чта намного эффективнее и проще обучать большие группы, а не возиться с отдельным студентом. НИИИИИИ$ Заинтересованность и использование Следует задуматься над следующими вопросами общего характера: о Я не знаю ни С, ни С++. Нужно пи начать с изучения СЯ О Я хочу заниматься объектно-ориентированным программированием. Нужно ли мне учить 5гпа!)го!!г, прежде чем я возьмусь за С+»э гз Надо ли приступать к изучению С++ как языка объектно-ориентированного программирования ипи как улучшенного СЗ о Сколько времени нужно дпя изучения С++Я Я не претендую на то, что мои ответы на данные вопросы единственно правильны, но они базируются на многолетнем опыте обучения С++ и другим языком, на чтении кратких курсов по проектированию и программированию с использованием С++, на консультировании по вопросам внедрения и применения С++ и т.д. Итак, по порядку: Я не зною ни С, ни С++.

Нужно ли начать с изучения СЗ Нет. Начинайте прямо с изучения Сч Н То подмножество С++, которое составляет С, проще для изучения и использования, чем сам С. С++ предоставляет лучшие гарантии, чем С, за счет более строгой проверки типов. Кроме того, в С++ есть немало второстепенных возможностей, например оператор пеы, более улобных и менее полверженных ошибкам, чем их аналоги в С Чтобы успешно применять С, нужно знать много приемов и методов, которые совсем или почти не нужны в С++. В хороших учебниках по С часто (и не без причины) упор делается именно на приемах, без владения которыми не справиться с большим проектом.

Наоборот, в удачных учебниках по С++ основное внимание уделяется методам и средствам С++, которые ведут к абстрагированию данных и объектноориентированному программированию. Зная конструкции С++, совсем просто выучить их низкоуровневые анапа~и в С, если зто необходимо. Мой совет таков: для изучения С воз~мите роботу Кернигано и Ричи [Кегп!ЯЬап, 1988), для изучения С++ — второе издание моей книги «Язык программирования С++» (2пг)]. Достоинство этих книг в том, что они сочетают введение в средства и приемы работы с языком с полным справочным руководством. В двух указанных изданиях описывается язык как таковой, о не его кон. кретная реализация, и не делается попытка описать библиотеки, поставляемые с определенным компилятором. Также всегда разумно получать информацию хотя бы из двух источников, чтобы избежать предвзятости и необъективности.

Я хочу заниматься обьектно-ориентированным программированием. Нужно пи мне учить 5лтадго!!г прежде, чем я возьмусь за С++Я Нет. Если вы планируете изучить С++, то и изучайте С++. В каждом из таких языков, как С++, 5гпоааП«, 5!гпц!а, СЮ5, Е!Не(, по-своему трактуются ключевые концепции абстрагирования и наследования, и в каждом из них методики проектирования поддержаны несколько по-разному. При изучении 5гла!!га!Е вы можете получить ценные уроки, но при этом не научитесь писать программы на С++.

Если у вас нет времени на изучение и осмысление обоих языков, та освоение 5гла!!га)!г лишь помешает правильному проектированию программ на Се+. Естественно, идеально было бы выучить и С++, и 5гпа!!!а!)г и свободно пользоваться двумя источниками, но люди, у которых не хватает времени глубоко усвоит~ новые идеи, нередко приходят к «5гла!!га!(г но С++», то есть применяют такие приемы проектирования на 5гло!!!а!)г, которые не приспособлены для С++. Аргументируя изучение 5гла!!!а!К часто говорят, что это «чистый» язык, который заставляет думать и программировать «в объектно-ориентированном стиле». Не буду вступать в споры о «чистоте», отмечу лишь, что, на мой взгляд, язык программирования общего назначения должен поддерживать более одного стиля (парадигмы) программирования.

Дело в том, что стили, которые подходят для 5гла!!га!(г и хорошо в нем поддержаны, необязательно годятся и для С++. В частности, слепое подражание 5гла!!!а))г приводит к неэффективным, Преподавание и изучение С++ ИИИИИИ2Н неудачным и трудным для сопровождения программам на С++. Это происходит потому, что для проектирования хорошей программы на С++ необходимо пользоваться преимуществами статической системы контроля типов, о не сражаться с ней. Бгпо11!о)х же поддерживает динамические типы (и только их), о при переводе такого проектирования на С++ приходится постоянно прибегать к небезопасным и некрасивым приведениям типов. Думается, что большая часть приведений типов в программах на С++ — признак неудачного проектирования.

Опираяс~ на свой опыт, отмечу, что программисты, давно пишущие но языке С, а также те, кто пришли к объектно-ориентированному программированию через 5гла))га%, чаще всего пользуются приведениями типов, которых при другом проектировании легко можно было бы избежат~.

Кроме того, 5пто)!то))г учит видеть в наследовании единственное или, по крайней мере, основное средство структурирования программ и организации классов в виде иерархий с одним общим корнем. В С++ классы — это типы, о наследование ни в коей мере не является единственным средством структурирования. В частности, основным средством для построения кон тей нерных классов являются шаблоны.

Я также с большим подозрением отношусь к призывом заставить писат~ в объектно-ориентированном стиле. Если человек не хочет чему-то учиться, то он и не научится. Если вы не можете продемонстрировать принципы, стоящие за абстрагированием данных и объектно-ориентированным программированием, то получите лишь нелепые и неправильные примеры использования тех языковых средств, которые призваны поддержать эти концепции. В ровной степени это относится к С++, 5гпо)1та% и любому другому языку. Более подробное обсуждение взаимосвязей между розными средствами С++ и проектированием программ см. в книге кЯзык программирования С++ (второе издание)» [2пг().

Надо ли приступать к изучению С++ кок языка обьектно-ориентированного программирования илн как улучшенного СЗ Это зависит от обстоятельств, от того, зачем вы хоти~в овладеть С++. Именно ответ но донный вопрос и должен определить ваш подход к изучению языка Судя по моему опыту, лучше всего изучать С++ »снизу вверх», то есть сначала освоить те средства, которые предоставлены для традиционного процедурного программирования (улучшенный С), затем переходить к средствам абстрагирования данных и, наконец, к использованию иерархий классов как способа организации взаимосвязанных классов Но мой взгляд, проскочить первые этапы галопом опасно, поскольку есть вероятность упустить какую-то ключевую концепцию.

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

Если же нет, то потратить время на чтение просто необходимо. Есть мнение, что при таком »постепенном подходе» программист ток всю жизн~ и будет писать в стиле С. Конечно, это не исключено, но вероятность такого результата гораздо меньше, чем пытаются представить поборники «чистых» языков и принуждения при обучении программированию. Главное — осознать, что успешное применение С++ как языка для абстрагирования данных и объектно-ориентированного программирования требует понимания нескольких новых концепций, которые не имеют прямых аналогов в С или Разсо1.

С++ — не просто новый синтаксис для выражения старых идей. По крайней мере, для большинства программистов это не так. Отсюда следует, что требуется образование, о не только НИИИИИИ1! Заинтересованность и использование обучение. Новые концепции нодо изучать и осваиват~ на практике. Испытанные приемы роботы придется пересмотреть. Не стоит бросат~ся делать все «старым добрым способом», нужно искать новые пути. Допустимо утверждение, что затраты времени и сил но изучение ключевых концепций абстрагирования данных и методов обьектно-ориентированного программирования начинают давать отдачу не в отдаленной перспективе, а уже через 3-12 месяцев. Использование С++ может принести пол~зу и без этого, но оно будет тем больше, чем лучше усвоены основные концепции, и я не понимаю, зачем вообще переходить но Счч человеку, который не готов на начальном этапе потрудиться кок следует.

Приступая к изучению С++ впервые или после долгого перерыва, изыщите возможность прочитать по теме хорошую книжку или несколько удчано подобранных статей (они в избытке содержатся в журналах «Тье С++ Веро«1» и «ТЬе С++ Тоцгпа1»1. Также стоит посмотреть на исходные тексты какой-нибудь большой библиотеки и поразмыслить над применяемыми том приемами. Это не повредит и тем, кто уже некоторое время работает с С++. С момента появления языка он и относящиеся к нему методы программирования и проектирования сильно изменились.

Чтобы убедиться в этом, достаточно бегло сравнить первое и второе издания книги «Язык программирования С++». Сколько времени нужно для изучения С++а Это зависит от разных факторов: от вашего опыта и от того, что вы понимаете под словами «изучение С++». Для освоения синтаксиса и основ программирования на С++ как на улучшенном С, а также для определения и использования простых классов большинству программистов достаточно одной-двух недель.

Характеристики

Тип файла
DJVU-файл
Размер
2,78 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6451
Авторов
на СтудИзбе
305
Средний доход
с одного платного файла
Обучение Подробнее