Читаем Освой самостоятельно С++ за 21 день. полностью

42:    for (int i = 0; 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):

****************************************

****************************************


Анализ: Листинг 10.1 представляет собой усеченную версию проекта, рассмотренного в главе подведения итогов за первую неделю. Чтобы сократить размер программы, был удален блок контроля за соответствием значений заданным типам. Основной код был упрощен до простой выполняемой программы без показа пользовательского меню.

Сейчас для нас важны строки 14 и 15, где происходит перегрузка функции DrawShape. Использование перегруженных вариантов этой функции показано далее, в строках с 30 по 50. Обратите внимание, что версия функции DrawShape без параметров обращается к варианту функции, содержащей два параметра, и передает в нее текущие значения переменных-членов. При программировании всегда следует избегать дублирования одинаковых программных кодов. В противном случае придется держать в памяти все созданные копии функций, чтобы при изменении программного кода в одной из них внести соответствующие изменения во все копии.

В строках программы с 52 по 62 создается прямоугольный объект и вызывается функция DrawShape. В первый раз в функцию не передаются параметры, а во второй раз передается два значения типа unsigned short integer.

Компилятор выбирает правильное объявление функции по количеству и типу заданных параметров. Дополнительно можно задать в этой же программе еще одно объявление функции DrawShape, в параметрах которой будет одно значение размера и переменная перечисления, позволяющая пользователю указать, что обозначает данный размер — ширину или длину прямоугольника.

Использование значений, заданных по умолчанию

Функции-члены класса, подобно обычным функциям, могут использовать значения, заданные по умолчанию. При объявлении функций-членов с аргументами, задаваемыми по умолчанию, используется уже знакомый вам синтаксис, как показано в листинге 10.2

Листинг 10.2. Использование значений, заданных по умолчанию

1: //Листинг 10.2. Использование значений, заданных по умолчанию

2: #include

3:

4: int

5:

Перейти на страницу:

Похожие книги

Сущность технологии СОМ. Библиотека программиста
Сущность технологии СОМ. Библиотека программиста

В этой книге СОМ исследуется с точки зрения разработчика C++. Написанная ведущим специалистом по модели компонентных объектов СОМ, она раскрывает сущность СОМ, помогая разработчикам правильно понять не только методы модели программирования СОМ, но и ее основу. Понимание мотивов создания СОМ и ее аспектов, касающихся распределенных систем, чрезвычайно важно для тех разработчиков, которые желают пойти дальше простейших приложений СОМ и стать по-настоящему эффективными СОМ-программистами. Показывая, почему СОМ для распределенных систем (Distributed СОМ) работает именно так, а не иначе, Дон Бокс дает вам возможность применять эту модель творчески и эффективно для ежедневных задач программирования.

Дональд Бокс

Программирование, программы, базы данных / Программирование / Книги по IT