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

Объекты в классах, работа с функциями C++

07.11.2018, 17:05. Показов 1174. Ответов 2

Студворк — интернет-сервис помощи студентам
Снизу код, там через классы и функции в нём идёт ввод данных окружности, а также их вывод, по заданию - необходимо добавить ещё один объект, который будет вызывать эти же функции ввода, но использовать их для другой окружности, и в конце, считается расстояние между центрами окр.
Подскажите, пожалуйста, как это реализовать.
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#include <string>
#include <stdio.h>
#include <cmath>
#include <iostream>
#include <conio.h>
 
using namespace std;
 
class Circle;
void M(Circle&);
class Circle // класс окружности
{ 
    friend void M (Circle&); // др.ф.
    public:
    double r, x , y, x2, y2, F;
    string color;
    void cirlce_cin()
   {
     
    std::cout << "Введите радиус: ";
    std::cin >> r;
    std::cout << "Введите Х координаты: ";
    std::cin >> x;
    std::cout << "Введите У координаты: ";
    std::cin >> y;
    std::cout <<"Введите цвет окружности: ";
    std::cin >> color;
 
   }// радиус, Х, У, цвет, вывод данных, вторая окружсность, расстояние между центров
 
    void solo_R()
    {
 
    std::cout << "Радиус: ";
    std::cout << r << endl;
    }
    void solo_X()
    {
 
    std::cout << "Х координаты: ";
    std::cout << x << endl;
    } 
    void solo_Y()
    {
 
    std::cout << "У координаты: ";
    std::cout << y<< endl;
    }
    void solo_color()
    {
    std::cout <<"Цвет окружности: ";
    std::cout << color<< endl;
    }
       void s_R()
    {
 
    std::cout << "Введите радиус: ";
    std::cin >> r;
    }
       void s_color()
    {
    std::cout <<"Введите цвет окружности: ";
    std::cin >> color;
    }
    void fin ()
    {
    std::cout <<"Радиус вашей окружности = " << r <<"\n" "X координаты вашей окружности = " << x <<"\n" "Y координаты вашей окружности = "  << y <<"\n" "Цвет вашей окружности = " << color << "\n\n\n";
    }
 
};
 
void M(Circle &first)
    {
    std::cout << "Расстояние между центрами первой и второй окружности =  ";
    first.F = sqrt((pow(first.x,2)-pow(first.x2,2))+(pow(first.y,2)-(pow(first.y2,2))));
    std::cout << first.F <<endl;
    };
 
int main()
{
        setlocale (0, "RUS");
        int k, i;
        Circle first;
        Circle first1;
        first.cirlce_cin();
 
 
        std::cout << "Хотите изменить параметры окружности ? \n" << "1 - да \n" << "2 - нет \n";
        std::cin >> k;
        if (k==1)
        {
        do
        {
          std::cout << "Что вы хотите изменить? \n" << "1 - радиус \n" << "2 - цвет \n" ;
          std::cin>> i;
          switch (i)
          {
        case 1: first.s_R(); break;
        case 2: first.s_color(); break;
          }
        std::cout << "Хотите изменить параметры окружности ? \n" << "1 - да \n" << "2 - нет \n";
        std:: cin >> k;
        }while (k==1);
 
 
        }
        std::cout << "Хотите вывести параметры окружности отдельно ? \n" << "1 - да \n" << "2 - нет \n";
        std::cin >> k;
        if (k==1)
        {
        do
        {
          std::cout << "Что вы хотите вывести отдельно? \n" << "1 - радиус \n" << "2 - Х координаты \n" << "3 - Y координаты \n" << "4 - цвет \n" ;
          std::cin>> i;
          switch (i)
          {
        case 1: first.solo_R(); break;
        case 2: first.solo_X(); break;
        case 3: first.solo_Y(); break;
        case 4: first.solo_color(); break;
          }
 
        std::cout << "Хотите вывести что-то ещё ?\n" << "1 - да \n" << "2 - нет \n";
        std:: cin >> k;
        }while (k==1);
        }
        first.fin();
 
 
        M(first);
 
    system ("pause");
}
Добавлено через 4 минуты
Как я сам понял, нужно добавить - 84 Circle first1; и далее его использовать как объект, но не получается.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.11.2018, 17:05
Ответы с готовыми решениями:

Три небольших вопроса. (Работа с функциями, объекты в массив)
Я новичок, и не могу разобраться с несколькими простыми моментами) 1. В проекте имеется форма и модуль, с именами, предположим, Form и...

Переопределение equals в классах, содержащих объекты друг друга
Здравствуйте. Как переопределить equals в классах, которые содержат в своих атрибутах объекты друг друга. Или это плохая архитектура? ...

работа с массивами в классах
Доброго времени суток! Полскажите пожалуйста если мы в программе создаем массив то можем написать так: const int MAX =10; int arr ...

2
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
07.11.2018, 17:12
Лучший ответ Сообщение было отмечено Nikzem как решение

Решение

Ты даже скопировать не можешь? Функцию ввода вызывай.
0
0 / 0 / 0
Регистрация: 14.05.2018
Сообщений: 14
07.11.2018, 17:20  [ТС]
Полагаю, так ?
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
#include <string>
#include <stdio.h>
#include <cmath>
#include <iostream>
#include <conio.h>
 
using namespace std;
 
class Circle;
void M(Circle&);
class Circle // класс окружности
{ 
    friend void M (Circle&); // др.ф.
    public:
    double r, x , y, x2, y2, F;
    string color;
    void cirlce_cin()
   {
     
    std::cout << "Введите радиус: ";
    std::cin >> r;
    std::cout << "Введите Х координаты: ";
    std::cin >> x;
    std::cout << "Введите У координаты: ";
    std::cin >> y;
    std::cout <<"Введите цвет окружности: ";
    std::cin >> color;
 
   }// радиус, Х, У, цвет, вывод данных, вторая окружсность, расстояние между центров
 
    void solo_R()
    {
 
    std::cout << "Радиус: ";
    std::cout << r << endl;
    }
    void solo_X()
    {
 
    std::cout << "Х координаты: ";
    std::cout << x << endl;
    } 
    void solo_Y()
    {
 
    std::cout << "У координаты: ";
    std::cout << y<< endl;
    }
    void solo_color()
    {
    std::cout <<"Цвет окружности: ";
    std::cout << color<< endl;
    }
       void s_R()
    {
 
    std::cout << "Введите радиус: ";
    std::cin >> r;
    }
       void s_color()
    {
    std::cout <<"Введите цвет окружности: ";
    std::cin >> color;
    }
    void fin ()
    {
    std::cout <<"Радиус вашей окружности = " << r <<"\n" "X координаты вашей окружности = " << x <<"\n" "Y координаты вашей окружности = "  << y <<"\n" "Цвет вашей окружности = " << color << "\n\n\n";
    }
};
 
void M(Circle &first , Circle &first1)
    {
    std::cout << "Расстояние между центрами первой и второй окружности =  ";
    first.F = sqrt((pow(first.x,2)-pow(first1.x,2))+(pow(first.y,2)-(pow(first1.y,2))));
    std::cout << first.F <<endl;
    };
 
int main()
{
        setlocale (0, "RUS");
        int k, i;
        Circle first;
        Circle first1;
        first.cirlce_cin();
 
 
        std::cout << "Хотите изменить параметры окружности ? \n" << "1 - да \n" << "2 - нет \n";
        std::cin >> k;
        if (k==1)
        {
        do
        {
          std::cout << "Что вы хотите изменить? \n" << "1 - радиус \n" << "2 - цвет \n" ;
          std::cin>> i;
          switch (i)
          {
        case 1: first.s_R(); break;
        case 2: first.s_color(); break;
          }
        std::cout << "Хотите изменить параметры окружности ? \n" << "1 - да \n" << "2 - нет \n";
        std:: cin >> k;
        }while (k==1);
 
 
        }
        std::cout << "Хотите вывести параметры окружности отдельно ? \n" << "1 - да \n" << "2 - нет \n";
        std::cin >> k;
        if (k==1)
        {
        do
        {
          std::cout << "Что вы хотите вывести отдельно? \n" << "1 - радиус \n" << "2 - Х координаты \n" << "3 - Y координаты \n" << "4 - цвет \n" ;
          std::cin>> i;
          switch (i)
          {
        case 1: first.solo_R(); break;
        case 2: first.solo_X(); break;
        case 3: first.solo_Y(); break;
        case 4: first.solo_color(); break;
          }
 
        std::cout << "Хотите вывести что-то ещё ?\n" << "1 - да \n" << "2 - нет \n";
        std:: cin >> k;
        }while (k==1);
        }
        first.fin();
  
 
        //-------------------------------------------------------------------------
           std::cout << "Работа со второй окружностью: "<< endl << endl;
        first1.cirlce_cin();
        std::cout << "Хотите изменить параметры окружности ? \n" << "1 - да \n" << "2 - нет \n";
        std::cin >> k;
        if (k==1)
        {
        do
        {
          std::cout << "Что вы хотите изменить? \n" << "1 - радиус \n" << "2 - цвет \n" ;
          std::cin>> i;
          switch (i)
          {
        case 1: first1.s_R(); break;
        case 2: first1.s_color(); break;
          }
        std::cout << "Хотите изменить параметры окружности ? \n" << "1 - да \n" << "2 - нет \n";
        std:: cin >> k;
        }while (k==1);
 
 
        }
        std::cout << "Хотите вывести параметры окружности отдельно ? \n" << "1 - да \n" << "2 - нет \n";
        std::cin >> k;
        if (k==1)
        {
        do
        {
          std::cout << "Что вы хотите вывести отдельно? \n" << "1 - радиус \n" << "2 - Х координаты \n" << "3 - Y координаты \n" << "4 - цвет \n" ;
          std::cin>> i;
          switch (i)
          {
        case 1: first1.solo_R(); break;
        case 2: first1.solo_X(); break;
        case 3: first1.solo_Y(); break;
        case 4: first1.solo_color(); break;
          }
 
        std::cout << "Хотите вывести что-то ещё ?\n" << "1 - да \n" << "2 - нет \n";
        std:: cin >> k;
        }while (k==1);
        }
        first1.fin();
 
          M(first);
 
    system ("pause");
}
Выдаёт : error LNK2019: ссылка на неразрешенный внешний символ "void __cdecl M(class Circle &)" (?M@@YAXAAVCircle@@@Z) в функции _main
и
Неразрешённых внешних элементов 1

upd: поправил последнюю строку M(first) на M(first, first1) - радиус всегда выдаёт нулевой
upd2: это помогло, поправил изначально на M(first, first)
задача решена, всем спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.11.2018, 17:20
Помогаю со студенческими работами здесь

Работа с одной переменной в двух классах
Как из класса &quot;FormА.cs&quot; переменную &quot;А1&quot; сделать доступной в классе &quot;FormB.cs&quot; ? Говорят нужно добавить ссылку на проект, но как ? Я...

Strcpy() и работа с char-данными в классах
Ребят, всем мира! Такой вопрос: насколько я знаю функция strcpy имеет такой прототип strcpy(char&quot;cтрока, в которую...

Работа с функциями
Помогите кто может с программой! Очень нужно, для будущего авиации))) Вычислить сумму значений функций Z=f(u,t) Z=f(sinX+cosY, X+Y) +...

Работа с функциями
Помогите решить эту задачу: С другом сидели и сделали так (на Си): #include &lt;stdio.h&gt; int get_matrix_sum(int* matrix, int...

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


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru