Г. Шилтд - Самоучитель C++ (DJVU), страница 8

DJVU-файл Г. Шилтд - Самоучитель C++ (DJVU), страница 8 Практика расчётов на ПЭВМ (2538): Книга - 3 семестрГ. Шилтд - Самоучитель C++ (DJVU): Практика расчётов на ПЭВМ - DJVU, страница 8 (2538) - СтудИзба2019-05-08СтудИзба

Описание файла

DJVU-файл из архива "Г. Шилтд - Самоучитель C++ (DJVU)", который расположен в категории "". Всё это находится в предмете "практика расчётов на пэвм" из 3 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр DJVU-файла онлайн

Распознанный текст из DJVU-файла, 8 - страница

Внутри тпа1по функция аЬзЦ вызывается с тремя аргументами разных типов. Компилятор автоматически вызывает правильную версию аЬз(), основываясь на используемом в аргументе типе данных. В результате работы программы на экран выводится следующее: В целом аЬв() Абсолютная величина -10: 10 В длинном целом аЬв ( ) Абсолютная величина -10В: 10 В вел„ественном аЬв () двойной точности Абсолютная величина -10.01: 10.01 Хотя этот пример достаточно прост, ценность перегрузки функций он все же демонстрирует. Поскольку одно имя используется для описания основного набора действий, искусственная сложность, вызванная тремя слабо различающимися именами, в данном случае аЬз(), !аЬ|о и ГаЬзО, устраняется. Теперь вам необходимо помнить только одно имя — то, которое описывает общее действие. На компилятор возлагается задача выбора соответствующей коякраииой версии вызываемой функции (а значит и метода обработки данных).

Это имеет лавинообразный эффект в вопросе снижения сложности программ. В данном случае, благодаря использованию полиморфизма, из трех имен получилось одно. Хотя использование полиморфизма в этом примере довольно тривиально, вы, должно быть, уже поняли, что для очень больших программ подход "один интерфейс, множество методов" может быть очень эффективным. Глава 1. Краткий обзор С++ 2. Ниже приведен другой пример перегрузки функций. В этом случае функция г(а(е() перегружается для получения даты либо в виде строки, либо в виде трех целых. В обоих этих случаях функция выводит на экран переданные ей данные, ггшс1цс1е <1овг.гаага> цв(пк патавврасе вгб; чоЫ с(асе(с)заг *басе); // дата в виде строки чоЫ пасе(1п~ гпопГ)т, )пг с(ау, 1п1 уеак); // дата в виде чисел )пг гаа 1п ( ) ( <(асе("8/23/99"); г)аге( 8, 23, 99); гегцгп 0' ! // Дата в виде строки чоЫ с)аде (сваг *дате) соцг « "Дата:" «г)аге « "'чп"; // Дата в виде целых чоЫ г)все(1пс гпопг)г, )пг г)ау, (п1 уеаг) соцг « "дата:" « втоца « "/'*; соцг « дау « "/" « уеаг « "М" г Этот пример показывает, как перегрузка функций может обеспечить для функции более понятный интерфейс.

Поскольку дату очень естественно представлять либо в виде строки, либо в виде трех целых чисел, содержащих месяц, день и год, нужно просто выбрать наиболее подходящую версию в соответствии с ситуацией. 3. До сих пор мы рассматривали перегруженные функции, отличающиеся типом своих аргументов. Однако перегруженные функции могут также отличаться и числом аргументов, как показано в приведенном ниже примере: Шпс!цг)е <)озггеапт> цз(п8 паптезрасе зЫ; чо)г( Г1(1пс а); чоЫ Е1 (1ПС а, гпг Ы 1 1 пг гаа 1п ( ) Г1 (10); К1 (10, 20); Самоучитель С++ 40 гстцгп О; чо1с) К1 (1пк а) сои( << В г1 (тпс а) ~п"; уоЫ й1(1пк а, )пт Ь) сонг << "В Г1(тпь а, 1пг Ь) М" т ) 4. Важно понимать, что тип возвращаемого значения сам по себе еще не является достаточным отличием для перегрузки функции. Если две функции отличаются только типом возвращаемых данных, компилятор не всегда сможет выбрать нужную.

Например, следующий фрагмент неправилен, поскольку в нем имеет место избыточность: Это все неправильно и не будет компилироваться гпп г1 (гп( а); с(опЫ.е Й1 (аль а); Х1 (10); У? какую функьию выбрать компилятору??? Как написано в комментарии, у компилятора нет способа выяснить, какую версию й~) вызвать. УЙфйМЙВнм 1. Создайте функцию вгоо((), которая возвращает квадратный корень своего аргумента. Перегрузите вгоог() тремя способами: чтобы получить квадратный корень целого, длинного целого и числа с плавающей точкой двойной точности.

(Для непосредственного подсчета квадратного корня вы можете использовать стандартную библиотечную функцию ваг$().) 2. Стандартная библиотека С++ содержит три функции: г)оиЫе асс~(совет сиаг *в); (пС асов(сопвс сЬаг "в) у )опт а(о)(сопя( сиаг "в); Эти функции возвращают численное значение, содержащееся в строке, на которую указывает з..заметьте, что а(оГ() возвращает дпцЫе, агЫ возвращает )пт и аго! возвращает!опт. Почему нельзя перегрузить эти функции? 3. Создайте функцию пнп(), которая возвращает наименьший из двух численных аргументов, используемых при вызове функции. Перегрузите функцию Глава 1, Краткий обзор С-т-т випО так, чтобы она воспринимала в качестве аргументов символы, целые и действительные двойной точности.

4. Создайте функцию в1еер(), приостанавливаю щую работу компьютера на столько секунд, сколько указано в аргументе функции. Перегрузите в!веро так, чтобы она могла вызываться или с целым, или со строкой, задаюцгей целое. Например, оба этих вызова должны заставить компьютер остановиться на 10 секунд: в1еер !10) г в1еер !"10"); Продемонстрируйте работу ваших функций, включив их в короткую про- грамму. (Почувствуйте удобство их применения для задания паузы в работе компьютера.) 1.8.

Ключевые слова С++ В С++ поддерживаются все ключевые слова С и кроме этого еще 30 ключевых слов, которые относятся только к языку С++. Все определенные для С++ ключевые слова представлены в табл. 1.1. Кроме них в ранних версиях С++ было определено ключевое слово оуег1оад, которое сейчас считается устаревшим.

Таблица Г. 1. Ключевые слова С.т г вчч)1с и ехр))с)1 !п1 гецгв1ег сопв1 сав1 авгп ге)п)егрге1 сав1 1егпр)а1е )опц гпц1аЫе ех1егп га)ве 1Ыв ге1цгп 1пгочч пагпеврасе впогг воа1 в)цпеб в)аео1 чо)г! 1гце печч 1пепб бупагп)с сав1 в1абс сваг цо1о )1 в1абс сав1 в1гцс1 с)авв е)ве сопв1 епцгп )п))пе 1урепагпе Попытайтесь выполнить следующие упражнения и ответить на вопросы. 1. Дайте краткие определения полиморфизма, инкапсуляции и наследования.

2. Как включить в программу С++ комментарии? ац1о сопбпце Ьоо! бе1ац)1 Ьгеах бе)е1е саве бо са1сП боцЫе орега1ог рпча1е рго1ес1ес$ рцЫ)с 1пг 1уребе1 1уре)г) цпюп цпв)цпес) цв)пц ч)ггца! чо)айе ччспаг 1 чгЫ!е 4г с++ Самоучитель 3. Напишите программу, используюгцузо стиль ввода/вывода С++, для ввода двух целых с клавиатуры и затем вывода на экран результата возведения первого в степень второго.

(Например, пользователь вводит 2 и 4, тогда результатом будет 24, или 1б.) 4. Создайте функцию ген Мго для изменения порядка следования символов строки на обратный. Перегрузите тем Мто так, чтобы она могла вызываться с одним или двумя символьными строками. Если функция вызывается с одной строкой, то операция должна осуществляться с ней. Если она вызывается с двумя строками, то результирующая строка должна оказаться во втором аргументе. Например: с)1ат в)) 80), в2 (Во) ) вввсру(в1, "привет"); теч вот(в1, в2); // измененная строка оказывается в вя, в1 не меняется измененная строка возврашается в в1 теч вст(в1)' 5.

Дана следующая программа, написанная в соответствии с новым стилем программирования на С++. Покажите, как превратить ее в программу старого стиля. ()ьпс1пс(е <1овЕгеат> пвзпо папеврасе в1с)1 тпп Г (1пва) ~ 1п' патп() ( сон «Е (10) г те~птп ог гпс Г(ьпЕ а) ( теептп а * 3.1416г 6. Что представляют собой данные типа Ьоо!? Глава 2 Введение в классы В этой главе вводятся понятия классов и объектов.

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

2. Создайте класс, который содержит информацию об имени и адресе. Храните всю эту информацию в символьных строках закрытой части класса. Включите в класс открытую функцию для запоминания имени и адреса. Также включите открытую функцию, которая выводит эти имя и адрес на экран. (Назовите эти функции йогео и п1вр1ауО.) 3. Создайте перегружаемую функцию га$а1еО, которая циклически сдвигает влево свой аргумент и возвращает результат. Перегрузите ее так, чтобы она работала с целыми (Ы) и длинными целыми (1опя). (Сдвиг по кольцу аналогичен обычному сдвигу, за исключением того, что выдвигаемый с одного конца слова бит появляется на другом его конце.) 4.

Что неправильно в следующем фрагменте? ((Ьпе1пбе <~еа~теап~> пыпя патевраее ви(; с!авв гпус!авв ( 1пг рпЬ1ье: Самоукитела Ст+ тлс (лаьл () ( лус1аяя оЬ; оЬ.1 = 10; 2.1. Конструкторы и деструкторы Если вы писали очень длинные программы, то знаете, что в некоторых частях программы обычно требуется инициализация. Необходимость в инициализации еше более часто проявляется при работе с объектами. Действительно, если обратиться к реальным проблемам, то, фактически, для каждого создаваемого вами объекта требуется какого-то вида инициализация. Для разрешения этой проблемы в С++ имеется функц((я-конструктор (сотггисгогЯпсг)оп), включаемая в описание класса. Конструктор класса вызывается всякий раз при создании объекта этого класса. Таким образом, любая необходимая объекту инициализация при наличии конструктора выполняется автоматически.

Конструктор имеет то же имя, что и класс, частью которого он является, и не имеет возвращаемого значения. Например, ниже представлен небольшой класс с конструктором: (ппс)аде <ьоясгеа(а> пя(пд патпсярасс яос(; с1аяя тпус)аяя ( 1пг а; риЫ1с: иус1аяя ()ю // копструктор лотб я)тои() жус1аяя::пус1аяя() ( сопя « "в коаструкторе~п"; а=10; иота тус1аяя::яйся() соп « а) Глава г. 45 Введение классы 1п( ваги ( ) гиус1азз оЬ; оЬ.апов(); гегиги О; В этом простом примере значение а инициализируется конструктором тус1аззо.

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