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

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

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

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

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

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

3. Создайте класс с циклической очередью целых. Сделайте очередь длиной 100 целых. В функцию ша!и() включите краткую демонстрацию ее работы. 1.6. Некоторые отличия языков С и С++ У языка С++ есть ряд небольших отличий от С. Хотя каждое из этих отличий само по себе незначительно, вместе они достаточно распространены в программах С++. Поэтому перед тем как двинуться дальше, обсудим эти отличия. а Во-первых, если в С функция не имеет параметров, ее прототип содержит слово гоЫ в списке параметров функции. Например, если в С функ- Глава Ь Краткий обзор С++ ция ПО не имеет параметров (и возвращает сЬаг), ее прототип будет выглядеть следующим образом: сваг г1 (чоЫ); В С++ слово гоЫ не обязательно.

Поэтому в С++ прототип обычно пишется так: сваг ~1(); С++ отличается от С способом задания пустого списка параметров. Если бы предыдущий прототип имел место в программе С, то это бы означало, что о параметрах функции сказать ничего нельзя. А в С++ это означает, что у функции нет параметров. Поэтому в предыдуших примерах для исчерпывающего обозначения пустого списка параметров слово гоИ не использовалось. (Использование АЖ для обозначения пустого списка параметров не ошибочно, скорее, оно излишне. Поскольку большинство программистов С++ гонятся за эффективностью с почти религиозным рвением, вы никогда не увидите гон) в таких случаях.) Запомните, в С++ следующие два объявления эквивалентны: 1пт Г1(); (п1 Г1 ['коъа); а Другим небольшим отличием между С и С++ является то, что в программах С++ все функции должны иметь прототипы.

Запомните. в С прототипы функций рекомендуются, но технически они не обязательны, а в С++ прототипы необходимы. Как показывают примеры из предыдущего раздела, содержащийся в классе прототип функции-члена действует так же, как ее обычный прототип, и никакого иного прототипа не требуется. ы Третьим отличием между С и С++ является то, что если в С++ функция имеет отличный от АЖ тип возвращаемого значения, то инструкция ге1игп внутри этой функции должна содержать значение данного типа.

В языке С функции с отличным от чоЫ типом возвращаемого значения фактически не требуется возвращать что-либо. Если значения нет, то функция возвращает неопределенное значение. В С, если тип возвращаемого функцией значения явно не задан, функция по умолчанию возвращает значение целого типа. В С++ такого правила нет. Следовательно, необходимо явно объявлять тип возвращаемого значения всех функций. а Следующим отличием между С и С++ является то, что в программах С++ вы можете выбирать место для обьявления локальных переменных. В С локальные переменные могут объявляться только в начале блока, перед любой инструкцией "действия".

В С++ локальные переменные могут Самоучитель Сч-ь объявляться в любом месте программы. Одним из преимуществ такого гюдхода является то, что локальные переменные для предотвращения нежелательных побочных эффектов можно объявлять рядом с местом их первого использования. а И последнее. Для хранения значений булева типа (истина или ложь) в С++ определен тип данных Ьоо1. В С++ также определены ключевые слова !где и Ыве — единственные значения, которыми могут быть данные типа Ьоо!. В С++ результатом выполнения операторов отношения и логических операторов являются значения типа Ьоо1, и направление развития любой условной инструкции должно определяться относительно значения типа Ьоо!. Хотя такое отличие от С на первый взгляд кажется значительным, на самом деле это не так.

Фактически оно совершенно прозрачно и вот почему: как вы знаете, в С любое ненулевое значение является истинным, а нулевое — ложным. В С++ это положение сохраняется, поскольку при использовании таких значений в булевом выражении ненулевое значение автоматически преобразуется в !гве, а нулевое— в Га!ве. Правильно и обратное: !где преобразуется в 1, а Га!зе в О, если значение типа Ьоо1 оказывается в целом выражении. Добавление в С++ данных типа Ьоо1 усиливает контроль типа и дает возможность различать данные булева и целого типов.

Естественно, что использование данных булева типа не обязательно, скорее оно просто удобно. 1. В программах С, при отсутствии в командной строке аргументов, функция ваш О обычно объявляется так: 1пг гааз.п ~ тоггц Однако в С++ такое использование слова гоЫ избыточно и необязательно. 2. Эта короткая программа С++ не будет компилироваться, поскольку у функции яппи нет прототипа: // Эта программа не будет компилироваться Фьпс1пое <тоастеав> пьяпя пагпеврасе всс1т !пг гааьп (1 ( 1пт а,Ь,с; сопЬ « "Введите два числа: сл гт » а »Ь; с-аиа(а, Ь); сонг « "Суьача равна:" « с; обзор 35 С++ Глава Краткий гегцгп О; Этой Функции необходим прототип вша(1пп а, 1пс Ь) ( песптп а+Ь; ) 3.

Эта короткая программа иллюстрирует тот факт, что локальные переменные можно объявить в любом месте блока: Шпс1ис)е <1овсгеап~> ивтпд палеврасе в~с(; шг тайп ( ) 1пг 1; // локальная переменная, объявленная в начале блока сопл « "Введите число:"; сзп»з у // расчет Факториала 1пг 1', Йасс 1/ // переменные, объявленные перед инструкциями // действия тот ()=1' з>=1; з -- ) Йасс=Йасг * з г сопл « "Факториал равен:" « тасс; пес гп О; Хотя объявление переменных) и $ас1 рядом с местом их первого использования в этом коротком примере и не слишком впечатляет, в больших функциях такая возможность может обеспечить программе ясность и предотвратить нежелательные побочные эффекты.

4. В следующей Программе создается булева переменная ои1соте и ей присваи- вается значение Ыве. Затем эта переменная используется в инструкции 11. ()1пс1ис)е<(ов1геагп > ив)пя пашеврасе в1с); 1п1 тпаьп () Ьоот овбсоп~е; способе = Йа1ве; 11 (сиесте) сопс « "истина"; е1яе сопл « "ложь"; Самоучитель Зб гегцгп Ст Как и следовало ожидать, в результате выполнения программы на экране появляется слово ложь. ~е~~йвю Следующая программа не будет компилироваться в качестве программы С++. Почему? // В этой программе есть ошибка Ф1пс!цс(е <~оатхеат> цз1пя пагпезрасе зЫ; ии 1па'и () Г(); тетюш и О; чоЫ (!! соц! « "Программа работать не будет"; 2.

Попытайтесь объявлять локальные переменные в различных местах программы С++. Попытайтесь проделать то же с программой С, обращая внимание на то, какие объявления вызовут сообщения об ошибках. 1.7. Введение в перегрузку функций После классов, вероятно, следующей важной и необычной возможностью С++ является перегрузка функций ((ипсаоп огег!оагт(пф. Перегрузка функций не только обеспечивает механизм, посредством которого в С++ достигается один из типов полиморфизма, она также формирует то ядро, вокруг которого развивается вся среда программирования на С++.

Ввиду важности темы в данном разделе предлагается только предварительное знакомство с перегрузкой функций, которой посвящена целая глава этой книги. В С++ две или более функции могут иметь одно и то же имя, отличаясь либо типом, либо числом своих аргументов, либо и тем и другим. Если две или более функции; ', а,, лонаковос нмя, говорят, что они перегружены. 7. Краткий обзор с++ зу Глава Перегруженные функции позволяют упростить программы, допуская обращение к одному имени для выполнения близких по смыслу действий.

Перегрузить функцию очень легко: просто объявите и определите все требуемые варианты. Компилятор автоматически выберет правильный вариант вызова на основании числа и/или типа используемых в функции аргументов. ~фВ С++ можно также перегружать и операторы. Однако для того чтобы понять перегрузку операторов, необходимо больше узнать о С++. .-';Лримеры.-' ), Одно из основных применений перегрузки функций — это достижение полиморфизма при компиляции программ, который воплощает в себе философию — один интерфейс, множество методов. Как вы знаете, при программировании на С необходимо иметь определенное число близких по назначению функций, отличающихся только типом данных, с которыми они работают. Классический пример этой ситуации дает набор библиотечных функций С.

Как ранее упоминалось в этой главе, библиотека содержит функции аЬв(), !аЬ|0 и (аЬ|(), которые возвращают абсолютное значение, соответственно, целого, длинного целого и числа с плавающей точкой. Однако из-за того, что для трех типов данных требуется три типа функции, ситуация выглядит более сложной, чем это необходимо. Во всех трех случаях возвращается абсолютная величина числа, отличие только в типе данных. В то же время, программируя на С++, вы можете исправить эту ситуацию путем перегрузки одного имени для трех типов данных так, как показано в следующем примере: $1пс1ис(е <1овттеал~> ив1пя пагпеврасе вМ; // Перегрузка аЬв () тремя способами ! и( аЬв (1пс и); (опя аЬв(1опд п)г с(оиЫе аЬв (с(овЬ1е и) г (в( виьп ( ) соус « "Абсолютная величина -10;" « аЬз(-10) « "~п/п" т сощ « "Абсолютная величина -10ь:" « аьв(-10ь) « "~пУв" р соит « "Абсолютная величина -10,01:" « аЬа(-" 0.01) « "~пуп" р гстигп 0; Самоучитель /l аЬь () для целых тпрр аЬв (тпс п) ( соцп <с "В целом аЬв() ~п" т тесцтп п<0 ? -и: п; аЬв () для длинных целых 1опо аЬ| (1опд и,) сонь « "В длинном целом аЬв()хп"; юеептп п<0 ? -и: аЬв() для вецественных двойкой точкос и бовЬ1е аЬв («(оцЫе и) сопл « "В вежественном аЬв() двойной точности~и"; иеюптп п<О ? -п: Как можно заметить, в программе задано три функции аЬзО, своя для каждого типа данных.

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