Автор: Trix (15.06.2008 в 20:21)
Помогите сделать перегрузку оператора ==, не могу разобраться как сделать перегрузку при наследовании
Есть 2 класса А базовый и B дочерний. В классе B нужно перегрузить оператор == методом функции
//Класс А
class A{
public:
...
friend bool operator == (const A &ref,const A &ref2)
{
return (ref.m_var== ref2.m_var );
}
//Класс B
class B:public A{
...
friend bool operator == (const B &ref,const B &ref2)
{
return (ref.var == ref2.var );
}
|
Соответственно чтобы корректно работало, видимо нужно и в базовом классе сделать аналогичную перегрузку, но как ! virtual тут не поставить.
Т.е. вопрос: как при наследовании корректно перегрузить оператор == методом функции ?
Приведенное выше решение не работает, пишет, что:
error C2678: binary '==' : no operator found which takes a left-hand operand of type 'const A'