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

Создать дружественную функцию для сравнения площади объектов

25.09.2019, 16:55. Показов 407. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день! В 41 строчке компилятор подчеркивает "sq.r". В чём может быть ошибка?
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
#include "pch.h"
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <algorithm>
using namespace std;
 
class sq {
private:
    double l;
    double r;
public:
    sq();
    sq(int l_l) { l = l_l; }
    void ploshad() { r = l * l; };
    void set() {
        int l_l;
        cout << "Введите d:";
        cin >> l_l;
        l = l_l;
    };
    friend void srav(sq &sq,circle &circle);
};
class circle {
private:
    double d;
    double s;
public:
    circle();
    circle(int d_ci) { d = d_ci; }
    void ploshad() { s = 3.14*(d / 2)*(d / 2); };
    void set() {
        int d_l;
        cout << "Введите d:";
        cin >> d_l;
        d = d_l;
    };
    friend void srav(sq &sq,circle &circle);
};
void srav(sq &sq, circle &circle) {
    if (sq.r > circle.s) { cout << sq.r << endl; }
    else { cout << circle.s << endl; }
};
int main()
{
    setlocale(LC_ALL, "Russian");
    sq A(5);
    circle B(12);
    A.ploshad;
    B.ploshad;
    srav(A, B);
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.09.2019, 16:55
Ответы с готовыми решениями:

Передать вектор объектов в дружественную функцию
Я думаю передать вот так, но почему-то синтаксическая ошибка. filtr_tup(vector&lt;OC&gt;); #ifndef...

Перегрузка операций (Создать класс вещественных чисел (double); определить оператор +, как функцию-элемент и – как дружественную функцию)
помогите решить пожалуйста Задание 2. Бинарная операция Создать класс вещественных чисел...

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

Реализовать и протестировать функцию перегрузки операции потокового вывода как дружественную функцию для класса Matrix
Добавить в определение класса Matrix, реализовать и протестировать функцию перегрузки операции...

2
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
25.09.2019, 17:13 2
nissess, на 22 строке не понятно еще что такое `circle`

Вставьте на 7 строке class circle; - это forward declaration (можно почитать в сети что это - но кратко "ей компилятор дальше будет описание класса, но пока что знай что circle это class, а не struct, и не enum, и не ..." )
0
0 / 0 / 0
Регистрация: 07.02.2019
Сообщений: 24
25.09.2019, 17:25  [ТС] 3
Я исправил, но 42 и 43 строчки всё равно подчёркнуты.
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
#include "pch.h"
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <algorithm>
using namespace std;
class circle;
class sq {
private:
    double l;
    double r;
public:
    sq();
    sq(int l_l) { l = l_l; }
    void ploshad() { r = l * l; };
    void set() {
        int l_l;
        cout << "Введите d:";
        cin >> l_l;
        l = l_l;
    };
    void srav(sq &sq, circle &circle);
};
 
class circle {
private:
    double d;
    double s;
public:
    circle();
    circle(int d_ci) { d = d_ci; }
    void ploshad() { s = 3.14*(d / 2)*(d / 2); };
    void set() {
        int d_l;
        cout << "Введите d:";
        cin >> d_l;
        d = d_l;
    };
    void srav(sq &sq, circle &circle);
};
void srav(sq &sq, circle &circle) {
    if (sq.r > circle.s) { cout << sq.r << endl; }
    else { cout << circle.s << endl; }
};
 
 
int main()
{
    setlocale(LC_ALL, "Russian");
    sq A(5);
    circle B(12);
    A.ploshad();
    B.ploshad();
    srav(A, B);
    return 0;
}
Добавлено через 4 минуты
забыл friend
0
25.09.2019, 17:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.09.2019, 17:25
Помогаю со студенческими работами здесь

Сделать дружественную функцию для критерия Кохрена
Не знаю как сделать дружественную функцию для критерия кохрена, все остальное работает ...

Как организовать дружественную функцию для печати массива
\\void ww_mas(); надо сделать как дружественную функцию #pragma once class massiv { float...

Как переопределить дружественную функцию ввода для класса наследника
Есть класс предок, который имеет такую вот дружественную функцию ввода: friend ifstream &amp;...

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


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru