Перегрузка оператора, показывающая нерегулярное поведение на выходе

#include <iostream>
using namespace std;
class base
{
public:
virtual bool operator ==( const base& other ) =0;
};

class derived : public base
{
public:
bool operator ==( const base& other ) { return false; }
bool operator ==( const derived& other ) { return true; }
};int main()
{
base* a = new derived;
base* b = a;
std::cout << ( *a == *b ) << std::endl;
cout<< (dynamic_cast< base*>(b) == dynamic_cast< base*>(a));

}

std::cout << ( *a == *b ) << std::endl; позвоню Derived::operator==( const base& other ), но почему cout << (dynamic_cast<base*>(b) == dynamic_cast<base*>(a)); давать 1 на выходе?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector