Форум С++

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

Автор: 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'


Ваше имя:

Пароль:

Цитировать

Используйте тэги для выделения текста:
Код: [code][/code]
Жирный: [b][/b]
Наклонный: [i][/i]
URL: [url][/url]

Сообщение:

Прикрепить: