Здравствуйте, yxiie, Вы писали:
Y>этот варнинг говорит, что у родителей класса есть методы с одинаковыми именами,
Y>может кто-то подробно разъяснить, что это за варнинг и как с ним боротся.
Y>и сколько ф-ций в таком варианте будет в VMT?
Y>чую я, что где-то поблизости есть грабли
Структура VMT унаследована от класса A (было бы странно, если бы это не так), и беда в том, что перед классом C стоит проблема: какое из перекрытий использовать. Он берёт первое попавшееся.
Лечится 2 способами:
1) перекрыть метод в классе C, и статически вызывать оттуда метод одного из предков
class C : public B1, public B2
{
public:
virtual Method() { B2::Method(); }
};
2) выбрать метод явно
class C : public B1, public B2
{
public:
using B2::Method;
};