Перегрузка оператора != - C (СИ)

Узнай цену своей работы

Формулировка задачи:

помогите разобраться написал оператор перегрузки != но не могу сравнивать их в if вот код
#include<iostream.h>
#include <stdio.h>
#include "time_1.h"
#include<time.h>
#include<windows.h>
char* Rus (const char* text); 
 
Complex::Complex(double r,double i)
{
real=r;
imaginary=i;
}
Complex Complex::operator +(const Complex &operand2) const
{
    Complex sum;
    sum.real=real+operand2.real;
    sum.imaginary=imaginary+operand2.imaginary;
    return sum;
}
Complex& Complex::operator=(const Complex &right)
{
    real=right.real;
imaginary=right.imaginary;
    return *this;
}
Complex Complex::operator-(const Complex &operand2) const
{
    Complex diff;
    diff.real=real-operand2.real;
    diff.imaginary=imaginary-operand2.imaginary;
    return diff;
}
ostream &operator<<(ostream &output,const Complex &s)
{
output<<'('<<s.real<<", "<<s.imaginary<<')'<<endl;
return output;
}
istream &operator>>(istream &input, Complex &s)
{
 
cout<<Rus("Введите целую часть числа:" )<<endl;
input>>s.real;
cout<<Rus("Введите мнимую часть ")<<endl;
input>>s.imaginary;
return input;
}
Complex Complex::operator *(Complex &s)  
{
Complex ymno;
ymno.real=real*s.real;
ymno.imaginary=imaginary*s.imaginary;
return ymno;
}
/****************************************************сравнение двух числео*/////
Complex Complex::operator==(const Complex &operand2) const
{
    if (operand2.real==real && operand2.imaginary==imaginary)
    return true;
    return 0;
}
Complex Complex::operator!=(const Complex &operand2) const
{
    if (operand2.real!=real && operand2.imaginary!=imaginary)
     cout<<Rus("два числа неравны");
return 0;
}
main()
{
Complex x,y;
cin>>x;
cin>>y;
if (x!=y)/***вот тут не хочет if проходить выбивает ошибку если просто написать x!=y; то все работатет*//
z=1;
 
return 0;
}
 
char bufRus[256];
char* Rus(const char* text)
{
    CharToOem(text,bufRus);
    return bufRus;
}

Решение задачи: «Перегрузка оператора !=»

textual
Листинг программы
bool Complex::operator==(const Complex &right)
{
        return( real==right.real && imaginary==right.imaginary );
}
 
bool Complex::operator1=!(const Complex &right)
{
        return( !operator==(right) );
}

Объяснение кода листинга программы

В представленном коде реализована перегрузка оператора != для класса Complex. Список действий в коде:

  1. В функции operator1!=, используется выражение !operator==(right), где right - это константа, переданная в качестве аргумента.
  2. Функция operator== проверяет равенство двух комплексных чисел. Она возвращает true, если вещественная и мнимая части комплексных чисел равны, и false в противном случае.
  3. Функция operator1!= возвращает true, если комплексные числа не равны, и false, если они равны. Таким образом, в результате выполнения кода, будет реализована перегрузка оператора != для класса Complex, которая будет проверять неравенство двух комплексных чисел.

Оцени полезность:

13   голосов , оценка 3.615 из 5
Похожие ответы