Джесс Либерти - Освой самостоятельно С++ за 21 день.

Здесь есть возможность читать онлайн «Джесс Либерти - Освой самостоятельно С++ за 21 день.» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Освой самостоятельно С++ за 21 день.: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Освой самостоятельно С++ за 21 день.»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

В книге широко представлены возможности новейшей версии программного продукта Microsoft Visual C++. Подробно описаны средства и подходы программирования современных профессиональных приложений. Материалы книги дополнены многочисленными демонстрационными программами, в процессе разработки которых максимально используются возможности программных инструментов Microsoft Visual Studio. Особое внимание уделено новинкам версии 6.0 и новейшим технологиям объектно-ориентированного программирования, включая использование библиотеки MFC и шаблонов классов, а также создание связанных списков. Отдельное занятие посвящено вопросам объектно-ориентированного анализа и проектирования приложений. Подробно рассмотрены все средства и подходы конструирования собственных пользовательских классов.
Книга рассчитана на широкий круг читателей, интересующихся современными проблемами программирования.

Освой самостоятельно С++ за 21 день. — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Освой самостоятельно С++ за 21 день.», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

23: {

24: CAT * pCat = new CAT(age);

25: return *pCat;

26: }

9. Исправьте программу из упражнения 8.

День 10-й. Дополнительные возможности использования функции

На занятии 5 вы познакомились с основными принципами использования функций. Теперь, когда вы знаете, как работают указатели и ссылки, перед вами открываются дополнительные возможности. Сегодня вы узнаете:

• Как перегружать функции-члены

• Как перегружать операторы

• Как создавать функции для поддержания классов с динамическим выделением памяти для переменных

Перегруженные функции-члены

На занятии 5 вы получили общие представления о полиморфизме, или перегружаемости функций. Имеется в виду объявление двух или более функций под одним именем но с разными параметрами. Функции-члены класса можно перегружать точно так же.

В классе Rectangle (листинг 10.1) объявляются две функции DrawShape(). Первая, которая не содержит списка параметров, вычерчивает прямоугольник, основываясь на текущих значениях класса. Вторая принимает два значения — ширину и длину — и в соответствии с ними создает прямоугольник, игнорируя текущие значения класса.

Листинг 10.1. Перегрузка функций-членов

1: //Листинг 10.1. Перегрузка функций-членов

2: #include

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

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

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Освой самостоятельно С++ за 21 день.»

Представляем Вашему вниманию похожие книги на «Освой самостоятельно С++ за 21 день.» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Освой самостоятельно С++ за 21 день.»

Обсуждение, отзывы о книге «Освой самостоятельно С++ за 21 день.» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x