Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
bekabot
1 / 1 / 0
Регистрация: 18.12.2013
Сообщений: 61
#1

Простой пример класса - C++

23.01.2014, 16:49. Просмотров 620. Ответов 3
Метки нет (Все метки)

Листинг 6.8. Объявление классов точки и прямоугольника
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
// Начало файла Rect.hpp
#include <iostream.h>
 class Point // хранит координаты x,y
{
// нет конструктора, используется конструктор по умолчанию
public:
void SetX(int x) { itsX = x; >
void SetY(int у) { itsY = у; }
int GetX() const < return itsX;}
int GetY() const { return itsY;}
private:
int itsX;
int itsY;
}; // конец объявления класса Point
 
class Rectangle
{
public:
Rectangle(int top, int left, int bottom, int right):.;
Rectangle() {}
 
int GetTop() const { return itsTop; }
int GetLeft() const { return itsLeft; }
int GetBottom() const { return itsBottom; }
int GetRight() const { return itsRight; }
 
Point GetUpperLeft() const { return itsUpperLeft; }
Point GetLowerLeft() const { return itsLowerLeft; }
Point GetUpperRight() const { return itsUpperRight; }
Point GetLowerRight() const { return itsLowerRight; }
 
void SetUpperLeft(Point Location) {itsUpperLeft = Location; }
void SetLowerLeft(Point Location) {itsLowerLeft = Location; }
void SetUpperRight(Point Location) {itsUpperRight = Location; }
void SetLowerRight(Point Location) {itsLowerRight = Location; }
 
void SetTop(int top) { itsTop = top; }
void SetLeft (int left) { itsLeft = left; }
void SetBottorn (int bottom) { itsBottom = bottom; }
void SetRight (int right) { itsRight = right; }
 
int GetArea() const;
 
private:
Point itsUpperLeft;
Point itsUpperRight;
Point itsLowerLeft;
Point itsLowerRight;
int itsTop;
int itsLeft;
int itsBottom;
int itsRight;
};
/ конец файла Rect.hpp


Листинг 6.9. Содержимое файла RECT.cpp
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
// Начало файла rect.cpp
#include "rect.hpp"
Rectangle::Rectangle(int top, int left, int bottom, int right)
{
itsTop = top;
itsLeft = left;
itsBottom = bottom;
itsRight = right;
 
itsUpperLeft.SetX(left);
itsUpperLeft.SetY(top);
 
itsUpperRight.SetXtright);
itsUpperRight.SetY(top);
 
itsLowerLeft.SetX(left);
itsLowerLeft.SetY(bottom);
 
itsLowerRight.SetX(right);
itsLowerRight.SetY(bottom);
}
 
// Вычисляем площадь прямоугольника, отыскивая его стороны
// определяем его длину и ширину, а затем перемножаем их
int Rectangle::GetArea() const
{
int Width = itsRignt - itsLeft;
int Height = itsTop - itsBottom;
return (Width >> Height);
}
 
int main()
{
//инициализируем локальную переменную Rectangle
Rectangle MyRectangle (100, 20, 50, 80 );
 
int Area = MyRectangle.GetArea();
 
cout << "Area: " << Area << "\n";
cout << "Upper Left X Coordinate:";
cout << MyRectangle.GetUpperLeft().GetX();
return 0;
}


1) Можете, пожалуйста, обьяснить строки 28-36. К примеру, как понять
C++
1
Point GetUpperLeft() const { return itsUpperLeft; }
Как функция может быть типа класса Point? GetUpperLeft() это объект класса или метод?

2) а что в этой строке происходит? itsUpperLeft как я понял обьект класса, значит эта строка присваивает значение одного объекта другому??
C++
1
void SetUpperLeft(Point Location) {itsUpperLeft = Location; }
3)Можете здесь уточнить, вызывается функция функции или что?
C++
1
cout << MyRectangle.GetUpperLeft().GetX();

4) Также хотел спросить одну вещь: к примеру где тут в программе вызывается функция SetX()? Я вижу, что она описывается, но вызывается только GetX()

Спасибо большое за Ваши ответы!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.01.2014, 16:49     Простой пример класса
Посмотрите здесь:

Нужен пример неизменяемого класса и класса от которого нельзя наследоваться - C++
Здравствуйте! Нужно привести пример неизменяемого класса и класса от которого нельзя наследоваться.

Простой пример на С++ - C++
a - типа int задаем

Простой пример по оператору ? - C++
Дайте простой пример по оператору ? и с пояснением) Заранее спасибо&quot;

Простой пример из книги - C++
Решил сделать все задания Павловской Т.А. С/С++ и вот с самого первого примера не понял кое-что. Сама программа вылетает и не показывает...

Простой пример перегрузки операции - C++
Приведите максимально просто пример перегрузки операции. Никак не могу с этим разобраться.

Простой пример, немогу разобраться - C++
(sinα)2+cos2α / a2/2-b7+k З.Ы. Прошу простить меня за корявое оформление( Помогите пожалуйста добрые люди решить.

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
monolit
185 / 184 / 22
Регистрация: 24.03.2011
Сообщений: 667
Завершенные тесты: 1
23.01.2014, 17:16     Простой пример класса #2
Цитата Сообщение от bekabot Посмотреть сообщение
Point GetUpperLeft() const { return itsUpperLeft; }
C++
1
2
Point p;
Point p2 = p.GetUpperLeft(); //т.е. это функция, вызываемая из объектов типа Point
Цитата Сообщение от bekabot Посмотреть сообщение
Как функция может быть типа класса Point?
Что значит 'типа'? Она возвращает объект типа Point;
Цитата Сообщение от bekabot Посмотреть сообщение
GetUpperLeft() это объект класса или метод?
Уже ответил.
Цитата Сообщение от bekabot Посмотреть сообщение
значит эта строка присваивает значение одного объекта другому??
Не все значения, а только часть, но думаешь в верном направлении....
Цитата Сообщение от bekabot Посмотреть сообщение
MyRectangle.GetUpperLeft().GetX();
GetUpperLeft() возвращает объект и от этого объекта уже вызывается функция
Эквивалентно:
C++
1
2
Point p = MyRectangle.GetUpperLeft();
cout << p.GetX();
Цитата Сообщение от bekabot Посмотреть сообщение
где тут в программе вызывается функция SetX()
ну раз ты не видишь, что она вызывается, значит, она и не вызывается)
bekabot
1 / 1 / 0
Регистрация: 18.12.2013
Сообщений: 61
23.01.2014, 17:19  [ТС]     Простой пример класса #3
Что-то не правильно, ведь она описана в примере из книги, значит где-то вызывается??
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.01.2014, 19:46     Простой пример класса
Еще ссылки по теме:

простой пример паттерна (facade) - C++
написал то теории и хотело бы узнать правельно ли я написал?? #include&lt;stdafx.h&gt; #include&lt;iostream&gt; using namespace std; ...

Пример простой службы виндовс - C++
Может у кого нибуть есть пример простой службы которая выодит что нибудь в консоль

Простой пример клиент-сервера на сокетах - C++
Дайте какой-нибудь простой пример клиент-сервера на сокетах

Нужен простой пример бинарного поиска - C++
Всем доброго времени суток. Кто может привести какой нибудь простенький пример бинарного поиска (будем считать что отсортированный массив...

Приведите простой пример который будет считать сумму чисел - C++
приведите простой пример который будет считать сумму чисел

Простой пример из книги. Объяснить, почему код выдает такие результаты - C++
Коллеги, привожу простой пример из книги Страуструппа. #include &lt;iostream.h&gt; #include &lt;conio.h&gt; void f(int a){ ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
monolit
185 / 184 / 22
Регистрация: 24.03.2011
Сообщений: 667
Завершенные тесты: 1
23.01.2014, 19:46     Простой пример класса #4
ну, хочешь - вызови, делов то)

Добавлено через 1 минуту
У тебя кстати в 7 и 9й строчках скобки > и < стоят, неправильно это, ясное дело ( надо {}).
Yandex
Объявления
23.01.2014, 19:46     Простой пример класса
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru