Наследование двух одинаковых прототиповC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Наследование двух одинаковых прототипов

Сообщение Anonymous »

Я наследую устаревший класс, который не могу изменить по некоторым техническим причинам, и этот устаревший класс дважды наследует один и тот же шаблон. (Я знаю, это некорректно, как ..., но устаревший код, знаете ли)
Обратите внимание, что "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:
...
};
Мне нужно переопределить оба метода «get», поэтому я создал следующий класс.

Код: Выделить всё

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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»