Re: Изменение прототипа вирт ф-ции в базовом классе
От: Chez Россия  
Дата: 10.12.05 12:28
Оценка:
Здравствуйте, <Аноним>, Вы писали:

Ещё как вариант для слишком умных могу предложить такое:
template<typename Der = int>
class Base;

template<>
class Base<int>
{
public:
    virtual int foo(int, double) = 0;
};

template<typename Der = int>
class Base : public Base<>
{
public:
    virtual int foo(int, double);
};

class Derived1 : public Base<Derived1>
{
    // удобно: не нужно вставлять заголовки
};
class Derived2 : public Base<Derived2>
{
    // удобно: не нужно вставлять заголовки
};


template<> // может быть и в CPP
int Base<Derived1>::foo(int, double)
{
    return 1;
}

template<>  // может быть и в CPP
int Base<Derived2>::foo(int, double)
{
    return 2;
}

Chez, ICQ#161095094

Posted via:RSDN@Home;version:1.1.3;muzikstamp:silent

Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.