Здравствуйте, Кодт, Вы писали:
К>Здравствуйте, 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;
К>};
К>
а я смогу потом
A* a=new C;
a->Method();
вызвать таким образом метод перекрытый в C?
... << RSDN@Home 1.1.3 stable >>