3 / 3 / 0
Регистрация: 07.12.2017
Сообщений: 558
1

Как вызвать объект?

17.04.2021, 15:33. Показов 501. Ответов 4
Метки нет (Все метки)

Код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// ссылка на объекты как члены-данных класса
CLine cl1; // вызывается конструктор, который инициализирует переменные-ссылки p1, p2
 
// дополнительные переменные
CPoint point1, point2;
int x, y;
 
// проверка, как конструктор заполнил координаты точек отрезка
cl1.GetPoints(&point1, &point2);
point1.GetXY(&x, &y); // x = 0; y = 0
point2.GetXY(&x, &y); // x = 1; y = 1
 
// установить новые значения
point1.SetXY(3, 8); // записать точку (3; 8)
point2.SetXY(5, 9); // записать точку (5; 9)
 
cl1.SetPoints(&point1, &point2);
 
// проверка
CPoint pp1, pp2;
cl1.GetPoints(&pp1, &pp2);
pp1.GetXY(&x, &y); // x = 3; y = 8
pp2.GetXY(&x, &y); // x = 5; y = 9
Необходимо вывести в консоль
C++
1
2
pp1.GetXY(&x, &y); // x = 3; y = 8
pp2.GetXY(&x, &y); // x = 5; y = 9
Как вызвать эти объекты на вывод?

C++
1
    std::cout << "x= " << x << " y= " << y << endl;
не работает, выводятся значения
// x = 0; y = 0
// x = 1; y = 1
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.04.2021, 15:33
Ответы с готовыми решениями:

Методы вызываются через указатель на объект класса; Как компилятор определяет, какой из методов надо вызвать?
Ребята, если вникать, то вообще ничё непонятно. Вот смотрите: пусть у нас есть абстрактный класс...

У меня класс B в классе A, а в классе B рекурсивная функция переопределения оператора "()", как её вызвать, не создавая явно объект класса B?
#include &lt;windows.h&gt; #include &lt;iostream&gt; using namespace std; //Вот главный класс class A{...

Почему в абстрактном классе можно вызвать конструктор но объект создать нельзя?
class A { protected: std::string str; public: A(std ::string s) :str(s) { std::cout &lt;&lt;...

Как правильно вызвать объект
Доброго времени суток, такое дело создаю свою функцию и из неё вызвать Label, но выходит ошибка. ...

4
5232 / 2886 / 1208
Регистрация: 07.02.2019
Сообщений: 7,282
17.04.2021, 15:51 2
Цитата Сообщение от a_lar Посмотреть сообщение
Необходимо вывести в консоль
Кликните здесь для просмотра всего текста
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include <iostream>
class CPoint
{
    int x, y;
public:
    CPoint(int x_ = 0, int y_ = 0) : x(x_), y(y_) {}
    
    void SetXY(int x_, int y_)
    {
        x = x_;
        y = y_;
    }
    
    void GetXY(int * x_, int * y_) const
    {
        *x_ = x;
        *y_ = y;
    }
};
 
class CLine
{
    CPoint p1, p2;
public:
    CLine() : p1(), p2(1, 1) {}
    
    void SetPoints(const CPoint * p1_, const CPoint * p2_)
    {
        p1 = *p1_;
        p2 = *p2_;
    }
    
    void GetPoints(CPoint * p1_, CPoint * p2_) const
    {
        *p1_ = p1;
        *p2_ = p2;
    }
 
};
int main(){
    // ссылка на объекты как члены-данных класса
    CLine cl1; // вызывается конструктор, который инициализирует переменные-ссылки p1, p2
 
    // дополнительные переменные
    CPoint point1, point2;
    int x, y;
 
    // проверка, как конструктор заполнил координаты точек отрезка
    cl1.GetPoints(&point1, &point2);
    point1.GetXY(&x, &y); // x = 0; y = 0
    std::cout << "x= " << x << " y= " << y << std::endl;
    point2.GetXY(&x, &y); // x = 1; y = 1
    std::cout << "x= " << x << " y= " << y << std::endl;
 
    // установить новые значения
    point1.SetXY(3, 8); // записать точку (3; 8)
    point2.SetXY(5, 9); // записать точку (5; 9)
 
    cl1.SetPoints(&point1, &point2);
 
    // проверка
    CPoint pp1, pp2;
    cl1.GetPoints(&pp1, &pp2);
    pp1.GetXY(&x, &y); // x = 3; y = 8
    std::cout << "x= " << x << " y= " << y << std::endl;
    pp2.GetXY(&x, &y); // x = 5; y = 9
    std::cout << "x= " << x << " y= " << y << std::endl;
}
1
3 / 3 / 0
Регистрация: 07.12.2017
Сообщений: 558
17.04.2021, 15:57  [ТС] 3
zayats80888, я делаю по коду отсюда: https://www.bestprog.net/ru/20... es_ru/#q01

я забыл указать, дурак.

А как там записать то?
Вот реализация классов


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
55
56
57
58
59
60
61
62
63
64
65
66
// класс, реализующий точку
class CPoint
{
    int x,y;
 
    public:
    // конструктор по умолчанию
    CPoint() { x = y = 0; }
 
    // методы доступа
    void GetXY(int* nx, int* ny)
    {
        *nx = x;
        *ny = y;
    }
 
    void SetXY(int nx, int ny)
    {
        x = nx;
        y = ny;
    }
};
 
// класс, реализующий отрезок
class CLine
{
    // ссылки на объекты типа CPoint
    CPoint & p1;
    CPoint & p2;
 
    public:
 
    // конструктор по умолчанию
    // динамически инициализируются значения ссылок p1 и p2
    CLine():p1(* new CPoint), p2(* new CPoint)
    {
        p1.SetXY(0, 0);
        p2.SetXY(1, 1);
    }
 
    // методы доступа
    // вернуть координаты точек
    void GetPoints(CPoint* pt1, CPoint* pt2)
    {
        int x, y;
        p1.GetXY(&x, &y); // взять значения x, y для точки p1
        pt1->SetXY(x, y); // установить x,y в новую точку pt1
 
        p2.GetXY(&x, &y); // взять x,y
        pt2->SetXY(x, y); // записать x,y в pt2
    }
 
    // установить новые значения точек
    void SetPoints(CPoint* pt1, CPoint* pt2)
    {
        int x, y;
 
        // p1 => pt1
        p1.GetXY(&x, &y);
        pt1->SetXY(x, y);
 
        // p2 => pt2
        p2.GetXY(&x, &y);
        pt2->SetXY(x, y);
    }
};
0
5232 / 2886 / 1208
Регистрация: 07.02.2019
Сообщений: 7,282
17.04.2021, 16:02 4
Цитата Сообщение от a_lar Посмотреть сообщение
// конструктор по умолчанию
// динамически инициализируются значения ссылок p1 и p2
Это какая-то дичь...

Цитата Сообщение от a_lar Посмотреть сообщение
// установить новые значения точек
Так они тут у вас устанавливаются в передаваемые параметры, а не в поля класса(чем этот метод отличается от GetPoints?)

Не по теме:

Цитата Сообщение от a_lar Посмотреть сообщение
www.bestprog
очень далеко от best

0
3 / 3 / 0
Регистрация: 07.12.2017
Сообщений: 558
17.04.2021, 16:12  [ТС] 5
zayats80888, я новичок в ООП, а это задание с лабораторной и соответственно препод требует. Как это вызвать
C++
1
2
pp1.GetXY(&x, &y); // x = 3; y = 8
pp2.GetXY(&x, &y); // x = 5; y = 9
? У меня не работает
C++
1
  std::cout << "x= " << x << " y= " << y << endl;
Выводится: x= 0 y= 0
x= 1 y= 1
x= 0 y= 0
x= 1 y= 1

Но x= 0 y= 0
x= 1 y= 1
уже выводится выше

Добавлено через 8 минут
Разобрался сам
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.04.2021, 16:12
Помогаю со студенческими работами здесь

Вызвать закрытый метод через объект
всем привет) Для приложения сделал отдельное окно &quot;Preferences&quot; на базе QDialog, в котором...

как вызвать COM-объект в java-программе?
Под виндами запускается java-программа, которая должна манипулировать с excel-евскими и...

Как создать объект делегата и вызвать его?
Добрый день! Написал код, нужно: создать объект делегата и вызвать его using System; using...

Как вызвать из C# объект в C++/CLI managed/unmanaged?
Моя попытка. Использую MS Visual Studio 2008 SP1. После компиляции/компоновки запуск Main.exe даёт...

Как вызвать объект Ole и не ждать завершения его работы
Господа! Болезненный вопрос!! Из Excel по Ole вызывается приложение в котором пользователь будет...

Как асинхронно через объект класса вызвать функцию класса?
Есть класс с именем Script с функцией run_task Я хочу вызвать функцию класса асинхронно несколько...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru