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

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

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

Добрый день! В 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
2546 / 1205 / 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
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 - 2022, CyberForum.ru