Как реализовать сравнение двух переменных, чтобы получить значение типа bool, говорящее, равны они или нет.
Что надо изменять? Написал вроде бы правильно, но нет никакой реакции на p2==p;, нет даже вывода в консоль ни нуля, ни единички.
И как реализовать операторы >, >= и подобные?
#include<stdio.h>
#include<math.h>
#include <iostream>
using namespace std;
class abstact
{
public:
virtual void input () = 0;
virtual void output () = 0;
virtual void rachet () = 0;
};
class racheti:public abstact
{
private:
float ksi;
float speed;
float alfa;
float ro;
float Relson;
float nu;
float f;
float S;
float test;
public:
friend bool operator==(racheti &a, racheti &b);
void input()
{
ro=1.29;
speed=8;
alfa=1e-3;
nu=1.73e-5;
cout << "S =";
cin >> S;
}
void output()
{
cout << "F = " << f << " Relson = " << Relson << " S = " << S << " KSI = "<< ksi << endl;
}
void rachet()
{
Relson=(speed*alfa*ro)/nu;
if(Relson<=2)
{
ksi=24/Relson;
}
else if(Relson>2 && Relson<=500)
{
ksi=18.5/(pow(Relson,0.6));
}
else if(Relson>500){ksi = 0.44;}
f=ksi*S*((ro*pow(speed,2))/2);
}
};
int main()
{
int a;
abstact *p = new racheti; // * В покажчик р на базовий клас заноситься адреса, виділена під об'єкт похідного класу crug * /
p ->input();
p ->rachet();
p ->output();
cout << endl;
abstact *p2 = new racheti;
p2 ->input();
p2 ->rachet();
p2 ->output();
p2==p;
return 0;
}
bool operator==(racheti &a, racheti &b)
{
if(a==b)
return 1;
else return 0;
}
Что? Требуется сравнить a и b? Нет вопросов! Смотрим типы... ага! вот он, оператор сравнения a и b! Поехали...
bool operator==(racheti &a, racheti &b)
{
if(a==b) return 1;
Что? Требуется сравнить a и b? Нет вопросов! Смотрим типы... ага! Вот он -
bool operator==(racheti &a, racheti &b)
{
if(a==b) return 1;
Что? Требуется сравнить a и b? Нет вопросов! Смотрим типы... ага! Вот он - ...
Ну, вы поняли, что въехали в бесконечную рекурсию?...
А вот если встретится
if(a.ksi != b.ksi) return 0;
if(a.speed != b.speed) return 0;
...
то будет примерно так - ага, тут нас просят сравнить два float. Нет вопросов - это встроенный оператор сравнения, вызываем его.
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники