#include <iostream>
using namespace std;
class family
{
private:
double weight;
double height;
public:
family(double x,double y);
~family();
double getWeight();
double getHeight();
double setWeight();
double setHeight();
bool operator==(const family &,const family &);
};
bool family::operator ==(const family &a,const family &b)
{
return(a.getWeight() == b.getWeight());
}
family::family(double x, double y)
{
weight = x;
height = y;
}
double family::getWeight()
{
return weight;
}
double family::getHeight()
{
return height;
}
family::~family(){}
int main()
{
family a(70.0,175.2);
family b(68.5,178.2);
if(a==b)
cout << "A is bigger than B" << endl;
else
cout << "A is smaller than B" << endl;
return 0;
}
Я хочу использовать метод для перегрузки равного оператора. Однако, у меня есть сообщение об ошибкенет соответствия для 'operator ==' in 'a == b'
"no match for ‘operator ==’ in ‘a == b’"
Почему это сообщение об ошибке придумать? Кроме того, я хочу знать, почему есть ссылочный символ «&» in (const family &, const family &). Пожалуйста, дайте мне несколько советов по изменению моего кода b.b.