![]() Главная страница Случайная страница Разделы сайта АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Листинг 10.1. Перегрузка функций-членов
1: //Листинг 10.1. Перегрузка функций-членов 2: #include < iostream.h> 3: 4: int 5: // Обьявление класса Rectangle 6: class Rectangle 7: { 8: public: 9: // конструкторы 10: Rectangle(int width, int height); 11: ~Rectangle(){ } 12: 13: // перегрузка функции-члена класса DrawShape 14: void OrawShape() const; 15: void DrawShape(int aWidth, int aHeight) const; 16: 17: private: 18: int itsWidth; 19: int itsHeight; 20: }; 21: 22: // Применение конструктора 23: Rectangle:: Rectangle(int width, int height) 24: { 25: itsWidth = width; 26: itsHeight = height; 27: } 28: 29: 30: // Перегруженная функция DrawShape - вариант без передачи данных 31: // Создание прямоугольника по значениям, заданным по умолчанию 32: void Rectangle:: DrawShape() const 33: { 34: DrawShape(itsWidth, itsHeight); 35: } 36: 37: 38: // Перегруженная функция DrawShape - передача двух значений 39: // Создание прямоугольника по значениям, переданным с параметрами 40: void Rectangle:; DrawShape(int width, int height) const 41: { 42: for (int i = 0; i< height; i++) 43: { 44: for (int j = 0; j< width; j++) 45: { 46: cout < < " < < "; 47: } 48: cout < < " \n"; 49: } 50: } 51: 52: // Выполняемая программа, демонстрирующая использование перегруженных функций 53: int main() 54: { 55: // создание прямоугольника с размерами 30 и 5 56: Rectangle theRect(30, 5); 57: cout < < " DrawShape(): \n"; 58: theRect.DrawShape(); 59: cout < < " \nDrawShape(40, 2): \n"; 60: theRect.DrawShape(40, 2); 61: return 0; 62: }
Результат: DrawShape(): ****************************** ****************************** ****************************** ****************************** ****************************** DrawShape(40, 2): **************************************** **************************************** Забиваем Сайты В ТОП КУВАЛДОЙ - Уникальные возможности от SeoHammer
Каждая ссылка анализируется по трем пакетам оценки: SEO, Трафик и SMM.
SeoHammer делает продвижение сайта прозрачным и простым занятием.
Ссылки, вечные ссылки, статьи, упоминания, пресс-релизы - используйте по максимуму потенциал SeoHammer для продвижения вашего сайта.
Что умеет делать SeoHammer
— Продвижение в один клик, интеллектуальный подбор запросов, покупка самых лучших ссылок с высокой степенью качества у лучших бирж ссылок. — Регулярная проверка качества ссылок по более чем 100 показателям и ежедневный пересчет показателей качества проекта. — Все известные форматы ссылок: арендные ссылки, вечные ссылки, публикации (упоминания, мнения, отзывы, статьи, пресс-релизы). — SeoHammer покажет, где рост или падение, а также запросы, на которые нужно обратить внимание. SeoHammer еще предоставляет технологию Буст, она ускоряет продвижение в десятки раз, а первые результаты появляются уже в течение первых 7 дней. Зарегистрироваться и Начать продвижение
Анализ: Листинг 10.1 представляет собой усеченную версию проекта, рассмотренного в главе подведения итогов за первую неделю. Чтобы сократить размер программы, был удален блок контроля за соответствием значений заданным типам. Основной код был упрощен до простой выполняемой программы без показа пользовательского меню. Сейчас для нас важны строки 14 и 15, где происходит перегрузка функции DrawShape(). Использование перегруженных вариантов этой функции показано далее, в строках с 30 по 50. Обратите внимание, что версия функции DrawShape() без параметров обращается к варианту функции, содержащей два параметра, и передает в нее текущие значения переменных-членов. При программировании всегда следует избегать дублирования одинаковых программных кодов. В противном случае придется держать в памяти все созданные копии функций, чтобы при изменении программного кода в одной из них внести соответствующие изменения во все копии. В строках программы с 52 по 62 создается прямоугольный объект и вызывается функция DrawShape(). В первый раз в функцию не передаются параметры, а во второй раз передается два значения типа unsigned short integer. Компилятор выбирает правильное объявление функции по количеству и типу заданных параметров. Дополнительно можно задать в этой же программе еще одно объявление функции DrawShape(), в параметрах которой будет одно значение размера и переменная перечисления, позволяющая пользователю указать, что обозначает данный размер — ширину или длину прямоугольника.
|