Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 02.02.2010
Сообщений: 3

Подскажите как воспользоваться функцией.

02.02.2010, 15:31. Показов 873. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здрасте. В книжке Джесс Либерти "Освой самостоятельно С++ за 21 день", 3е издание, на странице 159 есть пример программы работы с классами. Программа рабочая, но в ней есть мне не понятная функция, которая в книжке не описана. В примере программы эта функция не используется, но раз уж она там указана хотелось бы ей воспользоваться. Но я не понимаю как, подскажите плизз...
Как с помощью функции "SetUpperLeft" установить значение X-координате переменной-члену "itsUpperLeft" (не переписывая классы)?
Пример урезанной версии примера(убрал всё лишнее):

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
#include <iostream>
using namespace std;
 
class Point //Хранит координаты x и y
{
    public:
        void SetX(int x) { itsX = x; }
        void SetY(int y) { itsY = y; }
        int GetX() const { return itsX; }
        int GetY() const { return itsY; }
    private:
        int itsX;
        int itsY;
};
 
class Rectangle
{
    public:
        Point GetUpperLeft() const { return itsUpperLeft; }
        
        void SetUpperLeft(Point Location) { itsUpperLeft = Location; }
 
    private:
        Point itsUpperLeft; //Переменная-член
};
 
int main()
{
    Rectangle MyRectangle;
 
    
//    MyRectangle.SetUpperLeft?????;
 
    cout << "Upper Left X Coordinate: ";
    cout << MyRectangle.GetUpperLeft().GetX() << endl;
 
    return 0;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.02.2010, 15:31
Ответы с готовыми решениями:

Как воспользоваться функцией из класса
class range { private: int Left; int Rignt; public: int range1(int left, int rignt) { Left= left; Rignt= rignt; ...

Как воспользоваться данной функцией для экспорта ?
int FindModuleByAddr (void *addr, module *lib) { MEMORY_BASIC_INFORMATION mem; VirtualQuery(addr, &amp;mem, sizeof(mem)); ...

какой функцией воспользоваться?
какой функцией могу воспользоваться чтоб скорость компиляции возрасла при выборе 2592000сек, т.е. 1месяц он очень долго думает ...

5
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
02.02.2010, 16:10
Например так:
C++
1
2
3
4
5
6
int main()
{
Rectangle MyRectangle;
Point MyPoint;
MyPoint.SetX(32);
MyRectangle.SetUpperLeft(MyPoint);
1
эволюционирую потихоньку
 Аватар для TanT
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
02.02.2010, 16:15
передай экземпляр класса Point с заданными значениями в GetUpperLeft и усё.
как-то так
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
#include <iostream>
using namespace std;
 
class Point //Хранит координаты x и y
{
public:
    void SetX(int x) { itsX = x; }
    void SetY(int y) { itsY = y; }
    int GetX() const { return itsX; }
    int GetY() const { return itsY; }
private:
    int itsX;
    int itsY;
};
 
class Rectangle
{
public:
    Point GetUpperLeft() const { return itsUpperLeft; }
 
    void SetUpperLeft(Point Location) { itsUpperLeft = Location; }
 
private:
    Point itsUpperLeft; //Переменная-член
};
 
int main()
{
    Rectangle MyRectangle;
    int x=5;
    Point temp;
    temp.SetX(x);
    MyRectangle.SetUpperLeft(temp);
 
 
 
    cout << "Upper Left X Coordinate: ";
    cout << MyRectangle.GetUpperLeft().GetX() << endl;
 
    system("pause");
    return 0;
}
1
0 / 0 / 0
Регистрация: 02.02.2010
Сообщений: 3
02.02.2010, 17:55  [ТС]
Спасибо, создать ещё один класс как то не подумал:-D

Добавлено через 14 минут
А какой самый разумный вариант? Такой подойдёт?
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
#include <iostream>
using namespace std;
 
class Point //Хранит координаты x и y
{
public:
        void SetX(int x) { itsX = x; }
        void SetY(int y) { itsY = y; }
        int GetX() const { return itsX; }
        int GetY() const { return itsY; }
private:
        int itsX;
        int itsY;
};
 
class Rectangle
{
public:
        Point GetUpperLeft() const { return itsUpperLeft; }
 
    int SetUpperLeftX(int x) { itsUpperLeft.SetX(x); }
 
private:
        Point itsUpperLeft; //Переменная-член
};
 
int main()
{
        Rectangle MyRectangle;
 
        MyRectangle.SetUpperLeftX(5);
 
        cout << "Upper Left X Coordinate: ";
        cout << MyRectangle.GetUpperLeft().GetX() << endl;
     
        return 0;
}
0
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
02.02.2010, 18:07
Почти:
в классе Rectangle функцию
Цитата Сообщение от AA0005 Посмотреть сообщение
int SetUpperLeftX(int x) { itsUpperLeft.SetX(x); }
перепишите так:
void SetUpperLeftX(int x) { itsUpperLeft.SetX(x); }
0
0 / 0 / 0
Регистрация: 02.02.2010
Сообщений: 3
02.02.2010, 18:14  [ТС]
Цитата Сообщение от valeriikozlov Посмотреть сообщение
Почти:
в классе Rectangle функцию

перепишите так:
А ну да:-D туплю:-D
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.02.2010, 18:14
Помогаю со студенческими работами здесь

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

подскажите с функцией
вообщем, пишу программу для работы с матрицами, написал функцию, в которой задается размер,диапазон рандом. чисел и вообще генерируется...

Подскажите пожалуйста с функцией
Хочу создать функцию, что бы она выводили минимум из 4 чисел, но она всегда выводит 1. Подскажите в чем моя ошибка, заранее спасибо. P.S....

Подскажите с функцией kbhit()
Подскажите как сделать что-бы функция kbhit() реагировала на нажатие определенной клавиши, например клавишу &quot;q&quot;. Вот пример...

Проблемка с функцией gets(). Подскажите
Проблема следующего характера: при первом проходе в цикле(i=0) функция store() работает корректно. При шаге i=1 и дальше строка...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru