Динамический полиморфизм приперегрузке функций
От: dip_2000 Россия  
Дата: 16.07.07 08:09
Оценка:
Тема конечно названа неудачно, надеюсь код просянит ситуацию:

class Base
{    
public:
    virtual Base* getSelf()
    {return this;}
};

class Derived1 : public Base
{
public :
    virtual Derived1* getSelf()
    {return this;};
};

class Derived2 : public Base
{    
public :
    virtual Derived2* getSelf()
    {return this;};
};

class Tester
{
public:
    virtual void Test(Derived1* Value)
    {
        ::MessageBox(NULL, _T("TEST Derived1"),_T("TEST Derived1"), MB_OK);
    }
    virtual void Test(Derived2* Value)
    {
        ::MessageBox(NULL, _T("TEST Derived2"),_T("TEST Derived2"), MB_OK);
    }    
};

...
//хочется что бы в точке использования этого хозяйства
Base* pBase1 = new Derived1;
Base* pBase2 = new Derived2;

Tester* pTester = new Tester;
pTester->Test(pBase1->getSelf());// вот здесь хочу вызов правильного Test'a а не ошибку компиляции


Если тема уже поднималась, то просто ткните меня носом в поиск. Спасибо!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.