Вызвать функцию одного из 2х родителей

Тема в разделе "WASM.ZEN", создана пользователем EvilsInterrupt, 11 июл 2006.

  1. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    Здравствуйте

    Ситуация затруднительна для меня, вобщем так: (ООП только пришел и еще токо читаю маны :):

    Есть Базовый класс БК имеющий функцию летать() и есть производные от него Родитель1 и Родитель2,
    в каждом Летать() переопределена( понятие полиморфизма). Я создал еще один класс Потомок и породил его
    от 2х классов Родитель1 и Родитель2, следовательно у меня 2 функции Летать().

    Как мне в методе летать класс Потомок вызвать Летать класса Родитель1?

    class Base
    {
    public:
    void fly(void) const virtual;
    };

    class R1 : public Base
    {
    public:
    void fly(void) const { /* здесь код летаем*/ }
    };

    class R2 : public Base
    {
    public:
    void fly(void) const { /* здесь код летаем*/ }
    };

    class Children : public R1, public R2
    {
    public:
    void fly(void) const { /* здесь хочу R1.fly() или R2.fly(), как это сделать ? */ }
    };
     
  2. Black_mirror

    Black_mirror Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2002
    Сообщения:
    1.035
    EvilsInterrupt
    ((R1*)this)->fly() работает?
     
  3. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    Black_mirror
    Хотел написать, все оказалось проще,надо было R2::fly(); или R1::fly(); :))
     
  4. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Страуструпа почитал бы.