Обратите внимание, что "BindA" и "BindB" — это SAME тип данных.
Код: Выделить всё
class Legacy : public Template,
public Template
{
public:
Legacy(...);
virtual ~TransformerRatioUpdater();
// inherited from Template
virtual bool set(BindA const& rData);
virtual bool get(BindA & rData) const;
// inherited from Template
virtual bool set(BindB const& rData);
virtual bool get(BindB& rData) const;
private:
...
};
Код: Выделить всё
class MyClass: public Legacy
{
public:
MyClass(...);
bool get(BindA& rData) const override;
bool get(BindB& rData) const override;
virtual ~MyClass();
private:
typedef Legacy super;
};
Я использую компилятор IAR, и он не работает по следующим причинам: ошибки:
Код: Выделить всё
bool get(BindA& rData) const override;
^
"MyClass.hpp",31 Warning[Pe997]: function "Template::get(T &) const [with T=BindA]" is hidden by "MyClass::get" -- virtual function override intended?
bool get(BindB& rData) const override;
^
"MyClass.hpp",32 Warning[Pe997]: function "Template::get(T &) const [with T=BindB]" is hidden by "MyClass::get" -- virtual function override intended?
Сомневаюсь.
Подробнее здесь: https://stackoverflow.com/questions/793 ... prototypes
Мобильная версия