Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.78/40: Рейтинг темы: голосов - 40, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 15.01.2016
Сообщений: 17

Ошибка C4716 Complex<int>::operator+=: должна возвращать значение

09.01.2017, 22:14. Показов 9091. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня vs 2015 c++. Необходимо создать шаблон класса для представления 2-х компонентных комплексных чисел и реализовать перегруженные операторы для всех стандартных операций и т.д.
Код класса complex.h :

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
#ifndef __COMPLEX_H__
#define __COMPLEX_H__
 
#include <iostream>
 
template <typename T>
class Complex
{
    template <typename U>
    friend std::istream& operator >> (std::istream&, Complex<U>&);
 
public:
    explicit Complex(const T& re, const T& im);
    Complex(const Complex& other);
 
    Complex& operator=(const Complex& other);
 
    T real() const { return _re; }
    T imaginary() const { return _im; }
 
    Complex conjugate() const { return Complex(_re, -_im); }
 
    Complex& operator+= (const Complex& other);
    Complex& operator-= (const Complex& other);
    Complex& operator*= (const Complex& other);
    Complex& operator/= (const Complex& other);
 
    Complex operator+ (const Complex& other);
    Complex operator- (const Complex& other);
    Complex operator* (const Complex& other);
    Complex operator/ (const Complex& other);
 
private:
    T _re;
    T _im;
};
 
template <typename T>
inline Complex<T>::Complex(const T& re, const T& im)
    : _re(re), _im(im)
{
}
 
template <typename T>
inline Complex<T>::Complex(const Complex& other)
    : _re(other._re), _im(other._im)
{
}
 
template <typename T>
Complex<T>& Complex<T>::operator=(const Complex<T>& other)
{
    if (&other == this)
        return;
 
    _re = other._re;
    _im = other._im;
 
    return *this;
}
 
template <typename T>
inline Complex<T>& Complex<T>::operator+= (const Complex<T>& other)
{
    _re += other._re;
    _im += other._im;
}
 
template <typename T>
inline Complex<T>& Complex<T>::operator-= (const Complex<T>& other)
{
    _re -= other._re;
    _im -= other._im;
}
 
template <typename T>
inline Complex<T>& Complex<T>::operator*= (const Complex<T>& other)
{
    _re = _re * other._re - _im * other._im;
    _im = _im * other._re + _re * other._im;
}
 
template <typename T>
inline Complex<T>& Complex<T>::operator/= (const Complex<T>& other)
{
    _re = (_re * other._re - _im * other._im) /
        (other._re * other._re + other._im * other._im);
    _im = (_im * other._re - _re * other._im) /
        (other._re * other._re + other._im * other._im);
}
 
template <typename T>
inline Complex<T> Complex<T>::operator+ (const Complex<T>& other)
{
    return Complex<T>(*this) += other;
}
 
template <typename T>
inline Complex<T> Complex<T>::operator- (const Complex<T>& other)
{
    return Complex<T>(*this) -= other;
}
 
template <typename T>
inline Complex<T> Complex<T>::operator* (const Complex<T>& other)
{
    return Complex<T>(*this) *= other;
}
 
template <typename T>
inline Complex<T> Complex<T>::operator/ (const Complex<T>& other)
{
    return Complex<T>(*this) /= other;
}
 
template <typename T>
std::istream& operator >> (std::istream& in, Complex<T>& c)
{
    return in >> c._re >> c._im;
}
 
template <typename T>
std::ostream& operator<< (std::ostream& out, const Complex<T>& c)
{
    return out << c.real() << " " << c.imaginary();
}
 
#endif //__COMPLEX_H__
При запуске вылетает с ошибками:
1. Ошибка C4716 Complex<int>::operator+=: должна возвращать значение (67)
2. Ошибка C4716 Complex<int>::operator-=: должна возвращать значение (74)
3. Ошибка C4716 Complex<int>::operator*=: должна возвращать значение (81)
4. Ошибка C4716 Complex<int>::operator/=: должна возвращать значение (90)

Понятно, что он хочет return , но чего и зачем непонятно...
Помогите, пожалуйста...
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.01.2017, 22:14
Ответы с готовыми решениями:

Error C4716: mean: должна возвращать значение
Пожалуйста, подскажите в чем ошибка. При запуске выдает ошибку: «error C4716: mean: должна возвращать значение». Два дня голову ломал,...

error C4716: Distance::getdist: должна возвращать значение
уменя visual c++ 2010 professional.как решить проблему ? #include &lt;iostream&gt; using namespace std; /// class Distance { ...

Error C4716: Figure::border: должна возвращать значение
Добрый день! class Figure { public: virtual double border()/*=0*/ {} // периметр virtual double square()=0 {} // площадь ...

21
0 / 0 / 0
Регистрация: 15.01.2016
Сообщений: 17
16.01.2017, 15:14  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от IGPIGP Посмотреть сообщение
Если распутались, - напишите.
Распуталась) Спасибо большое, что так повозились со мной
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
16.01.2017, 16:14
Цитата Сообщение от AlisaChoi Посмотреть сообщение
Распуталась)
Вот и славно!
Цитата Сообщение от AlisaChoi Посмотреть сообщение
Спасибо большое
Не за что.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.01.2017, 16:14

Ошибка "operator[]: должна возвращать значение"
Добрый вечер, по условию был составлен код: Создать класс карта, имеющая ранг и масть. Карту можно перевернуть и открыть. Создать...

Ошибка в функции (function: должна возвращать значение)
ребят, компилятор выдает error C4716: function: должна возвращать значение что это значит? как с этим бороться? #include...

Где и что исправить в коде ? Ошибка :sumSequence должна возвращать значение
#include #include #include using namespace std; void displayExplanation(void) { cout &lt;&lt; &quot;Eta porgramma sumiryet...

Функция с типом char, которая должна возвращать интовое значение
Всем привет. Странное дело. Есть функция с типом char, которая должна возвращать интовое значение в виде площади квадрата (так по заданию...

Пишет func: должна возвращать значение,как правильно исправить код?
#include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; double func(int x, int t) { double y, a, b; b = pow(log(x),...


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

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Новые блоги и статьи
Нейтральные знания ..., ... чистая наука. Пока что-то проходит модерацию на Хабре, стоит развить мысль ...
Hrethgir 20.07.2026
К таким радикальным взглядам я конечно в той публикации не приходил, но чтобы скоротать вечер, решил углубиться немного. 1. Почему показания термометра заряжены целью? Цель заложена в самом. . .
Установка нескольких штампов электронной подписи в строго определенных местах файла docx
ВладимирСамохин 19.07.2026
(В!) Работа с Электронной подписью - это неотъемлемая часть современного документооборота. Но что делать, если нужно поставить несколько штампов электронной подписи в строго определенных местах. . .
сукцессия 35. Научная статья о проделанной работе
anaschu 19.07.2026
Написал в формате латекс и пдф
Вангую, что это не пройдёт модерацию, и на неделе я запущу свой сервер.
Hrethgir 19.07.2026
Эта публикация сейчас в песочнице и ждёт приглашения. https:/ / habr. com/ ru/ sandbox/ 295048/ По ссылке 403. Не очень информативно такую ссылку постить. Запись от Usaga размещена Сегодня в 06:46 . . .
сукцессия 33. открытые вопросы от клауде
anaschu 19.07.2026
"Что накопилось за эту часть А — тринадцать правок, из которых шесть пришли из ваших вопросов и каждая оказалась реальной ошибкой, а не калибровкой: односторонний симбиоз, отсутствующий листопад,. . .
32 сукцессия
anaschu 19.07.2026
сукцессия 28‑мерное ядро стабилизировано Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не «подкручивает» сходимость —. . .
сукцессия 31: модель микоризы - это модель ещё нескольких явлений, социальных и экономических
anaschu 18.07.2026
Теория «Всего»: апдейт v1. 1. 2 — 28‑мерное ядро стабилизировано Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не. . .
сукцессия 30. Массив проверяющих друг друга моделей
anaschu 18.07.2026
Архитектура сети взаимопроверяющих моделей микоризной сукцессии (v2. 0) Развитие тензорного ОДУ-ядра и создание кросс-платформенного калибровочного полигона Уважаемые коллеги! В продолжение. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru