С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
1 / 1 / 4
Регистрация: 01.10.2016
Сообщений: 247
1

Ошибка класса: оператор должен вернуть значение

03.06.2017, 21:03. Показов 841. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день, я создал класс комплексных чисел но его операторы выдают ошибку и ссылаются на "должен вернуть значение"
Помогите разобраться с проблемой.

1>c:\users\admin\documents\visual studio 2012\projects\consoleapplication23\consoleapplication23\consoleapplication23.cpp (81): error C4716: Complex::operator+=: должна возвращать значение
1>c:\users\admin\documents\visual studio 2012\projects\consoleapplication23\consoleapplication23\consoleapplication23.cpp (93): error C4716: Complex::operator*=: должна возвращать значение
1>c:\users\admin\documents\visual studio 2012\projects\consoleapplication23\consoleapplication23\consoleapplication23.cpp (99): error C4716: Complex::operator/=: должна возвращать значение
1>c:\users\admin\documents\visual studio 2012\projects\consoleapplication23\consoleapplication23\consoleapplication23.cpp (87): error C4716: Complex::operator-=: должна возвращать значение
1>c:\users\admin\documents\visual studio 2012\projects\consoleapplication23\consoleapplication23\consoleapplication23.cpp (105): error C4716: Complex::operator=: должна возвращать значение
Код:
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
#include "stdafx.h"
 
#include <iostream>
using namespace std;
#ifndef COMPLEX_H
#define COMPLEX_H 
 
class Complex
{
    double Re;
    double Im;
public:
    Complex();
    ~Complex();
    Complex(double re, double im);
    
    Complex operator*(const Complex& z);
    Complex operator/(const Complex& z);
    Complex operator +(const Complex& z);
    Complex operator -(const Complex& z);
    Complex operator+=(const Complex& z);
    Complex operator *=(const Complex& z);
    Complex operator -=(const Complex& z);
    Complex operator /=(const Complex& z);
    Complex operator = (const Complex&z);
    
    bool operator != (const Complex& z) const;
    bool  operator == (const Complex& z) const;
 
    friend istream&  operator >>(istream& i,Complex& z);
    friend ostream& operator  << (ostream& o, Complex& z);
 
private:
 
};
 
Complex::Complex()
{
}
 
Complex::Complex(double re, double im):Re(re),Im(im){}
 
Complex::~Complex()
{
}
 
Complex Complex::operator+(const Complex& z)
{
    Complex res(Re+z.Re,Im+z.Im);
    return res;
}
 
Complex Complex::operator-(const Complex& z)
{
    Complex res(Re-z.Re,Im-z.Im);
    return res;
}
 
Complex Complex::operator*(const Complex& z1)
{
    
    Complex res((Re*z1.Re-Im*z1.Im),(Re*z1.Im+Im*z1.Re));
    return res;
}
 
 
Complex Complex::operator/(const  Complex&z)
{
    Complex res((Re*z.Re+Im*z.Im)/(z.Re*z.Re+z.Im*z.Im),(Im*z.Re-Re*z.Im)/(z.Re*z.Re+z.Im*z.Im));
    return res;
}
 
 
Complex Complex::operator+=(const Complex&z)
{
    Re+=z.Re;
    Im+=z.Im;
}
 
Complex Complex::operator-=(const Complex&z)
{
    Re-=z.Re;
    Im-=z.Im;
}
 
Complex Complex::operator*=(const Complex&z)
{
    Re = Re*z.Re-Im*z.Im;
    Im = Re*z.Im+Im*z.Re;
}
 
Complex Complex::operator/=(const Complex&z)
{
    Re = (Re*z.Re+Im*z.Im)/(z.Re*z.Re+z.Im*z.Im);
    Im  = (Im*z.Re-Re*z.Im)/(z.Re*z.Re+z.Im*z.Im);
}
 
Complex Complex::operator=(const Complex& z)
{
    Re = z.Re;
    Im = z.Im;
}
 
bool Complex::operator==(const Complex& z) const
{
    return (fabs(Re-z.Re)<1e-7&&fabs(Im - z.Im)<1e-7);
}
 
bool Complex::operator!=(const Complex&z) const
{
    return (fabs(Re-z.Re)>1e-7 || fabs(Im - z.Im)> 1e-7);
}
#endif//COMPLEX_H
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.06.2017, 21:03
Ответы с готовыми решениями:

Метод класса должен вернуть этот класс
Вообщем есть класс и его метод. Как изменить этот метод, чтобы при использовании возвращался этот...

Вернуть значение из класса
Добрый день! У меня программа отправляет команды на удаленный сервер. Ранее я привязывал к кнопке...

Вернуть значение переменной из класса
Здравствуйте. Возможно это уже где-то писалось но я нигде не нашел. Задача в следующем. Есть...

Каждый созданный экземпляр класса должен увеличивать значение счетчика на 1
Каждый созданный экземпляр класса должен увеличивать значение счетчика(статического члена класса)...

3
Вездепух
Эксперт CЭксперт С++
12792 / 6669 / 1795
Регистрация: 18.10.2014
Сообщений: 16,870
03.06.2017, 21:09 2
Сообщение об ошибке, выданное компилятором, содержит исчерпывающую информацию об ошибке, ни убавить, ни прибавить. Какое слово в этом сообщении вам не понятно?
0
зомбяк
1584 / 1218 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
03.06.2017, 21:18 3
Ну например
C++
1
2
3
4
5
6
Complex Complex::operator+=(const Complex&z)
{
    Re+=z.Re;
    Im+=z.Im;
    return *this;
}
0
1 / 1 / 4
Регистрация: 01.10.2016
Сообщений: 247
03.06.2017, 21:30  [ТС] 4
вернуть значение с помощи функции нужно?

Добавлено через 24 секунды
по такому принципу мне применить ко всем компл. операторам?
0
03.06.2017, 21:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.06.2017, 21:30
Помогаю со студенческими работами здесь

Когда оператор должен быть обязательно членом класса, и когда он обязательно не принадлежит классу?
Нужно узнать случаи, когда оператор функция должна быть обязательно членом класса и случаи, когда...

Возвращаемое значение метода public int read() класса InputStream. Как вернуть число больше 255?
Привет!) Разбераю стримы. И по теории в тот int который возвращается с read() записывается только...

Ошибка: "main" должен вернуть "int''
ошибка: `main'' должен вернуть `int'' и т.д. перепробовал много вариантов у меня DEV C++ понятно...

Ошибка, что значение должен быть функцией, но имеет форму any1
Не знаю,что не правильно.


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

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