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

Почему не работает перегрузка?

05.01.2021, 22:27. Показов 599. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
#include <iostream>
using namespace std;
///////////////////////////////////////////////////////////
class Distance   
{
    private:
        int number;
 
    public:
        Distance(): number(0)
        {}
        Distance(int n): number(n)
        {}
 
        Distance operator+ (Distance2)
        {
            Distance i = number + d2.number;
            return i;
        }
 
};
 
int main(){
    
    Distance d1(10);
    Distance d2(20);
 
    cout << d1 + d2 << endl;        // Где 30?????
 
    return 0;
}
Начал только изучение перегрузки, не подскажите почему ошибки лезут?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.01.2021, 22:27
Ответы с готовыми решениями:

Почему в коде не работает перегрузка операторов?
Почему не работает перегрузка? #include &lt;iostream&gt; #include &lt;vector&gt; using namespace std;

Перегрузка функций и операторов, почему программа не работает?
Помогите пожалуйста разобраться почему не работает программа? Создать класс 2-D координат. Определить операторы &quot;+&quot; и...

Не работает перегрузка индексного оператора [], вместо [int][int] почему то нужно ставить [0][int][int]
#include&lt;iostream&gt; #include&lt;string&gt; #include&lt;vector&gt; #include&lt;algorithm&gt; #include&lt;ctime&gt; #include&lt;conio.h&gt; #include&lt;windows.h&gt; ...

3
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
05.01.2021, 22:32
Цитата Сообщение от Hellooooooooo Посмотреть сообщение
Начал только изучение перегрузки, не подскажите почему ошибки лезут?
Цитата Сообщение от Hellooooooooo Посмотреть сообщение
Distance operator+ (Distance2)
C++
1
Distance operator +(const Distance &d2) const
Добавлено через 2 минуты
И добавь в класс
C++
1
2
3
4
        friend std::ostream &operator <<(std::ostream &out, const Distance &d) 
        {
            return out << d.number;
        }
1
 Аватар для eva2326
1673 / 501 / 107
Регистрация: 17.05.2015
Сообщений: 1,519
05.01.2021, 23:42
Цитата Сообщение от Hellooooooooo Посмотреть сообщение
почему ошибки лезут?
Потому что std::cout не знает, как правильно выводить в консоль содержимое Distance

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;
 
#define dOUT_TO_STDSTREAM(classname) \
    template<class T> friend         \
    ::std::basic_ostream<T>&         \
    operator<<(::std::basic_ostream<T>& out, const classname& obj)
 
///////////////////////////////////////////////////////////
class Distance   
{
    dOUT_TO_STDSTREAM(Distance)
    {
        return out << obj.number;
    }
    
private:
    int number;
 
public:
    Distance(): number(0)
    {}
    Distance(int n): number(n)
    {}
 
    Distance operator+ (const Distance& d2)
    {
        Distance i = number + d2.number;
        return i;
    }
};
 
int main()
{
    Distance d1(10);
    Distance d2(20);
    cout << d1 + d2 << endl;
}
0
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
06.01.2021, 00:34
Цитата Сообщение от eva2326 Посмотреть сообщение
#define dOUT_TO_STDSTREAM(classname) \
    template<class T> friend         \
    ::std::basic_ostream<T>&         \
    operator<<(::std::basic_ostream<T>& out, const classname& obj)
это что за ужастик?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.01.2021, 00:34
Помогаю со студенческими работами здесь

Классы и перегрузка операторов, почему программа не работает?
программа без делита в деструкторе работает замечательно, но если мы его там напишем (он там должен быть), то почему-то ф-я print, после её...

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

Перегрузка оператора.Почему так происходит?
У нас есть перегрузка оператора. Digit operator-(const Digit &amp;N) { Digit temp; temp.dig=dig-N.dig; return temp; } ...

Перегрузка функции, почему вызов неоднозначен?
Добрый день, столкнулся с проблемой, объясните ее причину. Делаю перегрузку void Save_to_file (QString FileName, int FileIndex,float...

Почему программа ничего не выводит (перегрузка операторов)?
#include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;math.h&gt; #define M 100 using namespace std; struct Item { float...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru