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

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

Восстановить пароль Регистрация
 
AA0005
0 / 0 / 0
Регистрация: 02.02.2010
Сообщений: 3
02.02.2010, 15:31     Подскажите как воспользоваться функцией. #1
Здрасте. В книжке Джесс Либерти "Освой самостоятельно С++ за 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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.02.2010, 15:31     Подскажите как воспользоваться функцией.
Посмотрите здесь:

какой функцией воспользоваться? C++
C++ Проблемка с функцией gets(). Подскажите
подскажите с функцией C++
C++ Подскажите с функцией scanf()
Подскажите с функцией kbhit() C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
02.02.2010, 16:10     Подскажите как воспользоваться функцией. #2
Например так:
C++
1
2
3
4
5
6
int main()
{
Rectangle MyRectangle;
Point MyPoint;
MyPoint.SetX(32);
MyRectangle.SetUpperLeft(MyPoint);
TanT
эволюционирую потихоньку
 Аватар для TanT
464 / 462 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
02.02.2010, 16:15     Подскажите как воспользоваться функцией. #3
передай экземпляр класса 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;
}
AA0005
0 / 0 / 0
Регистрация: 02.02.2010
Сообщений: 3
02.02.2010, 17:55  [ТС]     Подскажите как воспользоваться функцией. #4
Спасибо, создать ещё один класс как то не подумал:-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;
}
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
02.02.2010, 18:07     Подскажите как воспользоваться функцией. #5
Почти:
в классе Rectangle функцию
Цитата Сообщение от AA0005 Посмотреть сообщение
int SetUpperLeftX(int x) { itsUpperLeft.SetX(x); }
перепишите так:
void SetUpperLeftX(int x) { itsUpperLeft.SetX(x); }
AA0005
0 / 0 / 0
Регистрация: 02.02.2010
Сообщений: 3
02.02.2010, 18:14  [ТС]     Подскажите как воспользоваться функцией. #6
Цитата Сообщение от valeriikozlov Посмотреть сообщение
Почти:
в классе Rectangle функцию

перепишите так:
А ну да:-D туплю:-D
Yandex
Объявления
02.02.2010, 18:14     Подскажите как воспользоваться функцией.
Ответ Создать тему
Опции темы

Текущее время: 16:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru