Как реализовать сравнение двух переменных, чтобы получить значение типа 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
. Нет вопросов - это встроенный оператор сравнения, вызываем его.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
У меня есть класс для значений давленийВ приведенном ниже коде вылезает ошибка:
Нужно считать дерево сtxt файла
Подскажите пожалуйста, почему я могу считывать данные с файла, но значения переменных dblx, dblResult не записываются в файлНе могу найти ошибку