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

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

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

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

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

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

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

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

Интервал:

Закладка:

Сделать

Возможность встраивания файлов в другие файлы позволяет хранить объявления классов отдельно от их выполнения и использовать тогда, когда в этом возникает необходимость. Это стандартный прием при создании программ на языке C++. Обычно объявления классов хранятся в файле с расширением .hpp, который затем включается в соответствующий файл .cpp с помощью директивы #include.

В строках 18—29 в точности повторяется тело функции main() из листинга 6.4. Цель этого повторения — показать, что применение подставляемых вариантов функций не внесло изменений в использование этих функций.

Классы содержащие другие классы в качестве данных-членов

Нет ничего необычного в построении сложного класса путем объявления более простых классов и последующего включения их в объявление сложного класса. Например, можно объявить класс колеса, класс мотора, класс коробки передач и т.д., а затем объединить их в класс автомобиля. Тем самым объявляются и взаимоотношения между классами. Автомобиль имеет мотор, колеса и коробку передач.

Рассмотрим второй пример. Прямоугольник состоит из линий. Линия определяется двумя точками. Каждая точка определяется координатами x и у. В листинге 6.8 показано объявление класса Rectangle, которое содержится в файле RECTANGLE.hpp. Поскольку прямоугольник определяется четырьмя линиями, соединяющими четыре точки, и каждая точка имеет координаты на графике, то сначала будет объявлен класс Point для хранения координат x,y каждой точки. Листинг 6.9 содержит объявления обоих классов.

Листинг 6.8. Объявление классов точки и прямоугольника

1: // Начало файла Rect.hpp

2: #include

3: class Point // хранит координаты x,y

4: {

5: // нет конструктора, используется конструктор по умолчанию

6: public:

7: void SetX(int x) { itsX = x; >

8: void SetY(int у) { itsY = у; }

9: int GetX() const < return itsX;}

10: int GetY() const { return itsY;}

11: private:

12: int itsX;

13: int itsY;

14: }; // конец объявления класса Point

15:

16:

17: class Rectangle

18: {

19: public:

20: Rectangle(int top, int left, int bottom, int right):.;

21: ~Rectangle() {}

22:

23: int GetTop() const { return itsTop; }

24: int GetLeft() const { return itsLeft; }

25: int GetBottom() const { return itsBottom; }

26: int GetRight() const { return itsRight; }

27:

28: Point GetUpperLeft() const { return itsUpperLeft; }

29: Point GetLowerLeft() const { return itsLowerLeft; }

30: Point GetUpperRight() const { return itsUpperRight; }

31: Point GetLowerRight() const { return itsLowerRight; }

32:

33: void SetUpperLeft(Point Location) {itsUpperLeft = Location; }

34: void SetLowerLeft(Point Location) {itsLowerLeft = Location; }

35: void SetUpperRight(Point Location) {itsUpperRight = Location; }

36: void SetLowerRight(Point Location) {itsLowerRight = Location; }

37:

38: void SetTop(int top) { itsTop = top; }

39: void SetLeft (int left) { itsLeft = left; }

40: void SetBottorn (int bottom) { itsBottom = bottom; }

41: void SetRight (int right) { itsRight = right; }

42:

43: int GetArea() const;

44:

45: private:

46: Point itsUpperLeft;

47: Point itsUpperRight;

48: Point itsLowerLeft;

49: Point itsLowerRight;

50: int itsTop;

51: int itsLeft;

52: int itsBottom;

53: int itsRight;

54: };

55: // конец файла Rect.hpp

Листинг 6.9. Содержимое файла RECT.cpp

1: // Начало файла rect.cpp

2: #include "rect.hpp"

3: Rectangle::Rectangle(int top, int left, int bottom, int right)

4: {

5: itsTop = top;

6: itsLeft = left;

7: itsBottom = bottom;

8: itsRight = right;

9:

10: itsUpperLeft.SetX(left);

11: itsUpperLeft.SetY(top);

12:

13: itsUpperRight.SetXtright);

14: itsUpperRight.SetY(top);

15:

16: itsLowerLeft.SetX(left);

17: itsLowerLeft.SetY(bottom);

18:

19: itsLowerRight.SetX(right);

20: itsLowerRight.SetY(bottom);

21: }

22:

23:

24: // Вычисляем площадь прямоугольника, отыскивая его стороны

25: // определяем его длину и ширину, а затем перемножаем их

26: int Rectangle::GetArea() const

27: {

28: int Width = itsRignt - itsLeft;

29: int Height = itsTop - itsBottom;

30: return (Width >> Height);

31: }

32:

33: int main()

34: {

35: //инициализируем локальную переменную Rectangle

36: Rectangle MyRectangle (100, 20, 50, 80 );

37:

38: int Area = MyRectangle.GetArea();

39:

40: cout << "Area: " << Area << "\n";

41: cout << "Upper Left X Coordinate:";

42: cout << MyRectangle.GetUpperLeft().GetX();

43: return 0;

44: }

Результат:

Area: 3000

Upper Left X Coordinate: 20

Анализ:В строках 3-14 листинга 6.8 объявляется класс Point, который используется для хранения конкретных координат x,y на графике. В данной программе класс Point практически не используется. Однако в других методах рисования он незаменим.

Внутри объявления класса Point (в строках 12 и 13) объявляются две переменные- члена (itsX и itsY). Эти переменные хранят значения координат точки. При увеличении координаты x мы перемещаемся на графике вправо. При увеличении координаты у мы перемещаемся на графике вверх. В других графиках могут использоваться другие системы координат (с другой ориентацией). Например, в некоторых программах построения окон значение координаты у увеличивается при перемещении в области окна вниз.

В классе Point используются подставляемые inline-функции доступа, предназначенные для чтения и установки координат точек X и Y. Эти функции объявляются в строках 7-10. В объектах класса Point используются стандартные конструктор и деструктор, предоставляемые компилятором по умолчанию. Следовательно, координаты точек должны устанавливаться в программе.

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

Интервал:

Закладка:

Сделать

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

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


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

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

x