используя сестринское наследование

предположим, что какой-то (устаревший)код, который нельзя трогать, объявить

struct B{
 public:
  void f(){}
};

и предположим иметь

struct A{
 public:
  virtual void f()=0;
};

возможно ли сделать вызов подкласса A B::f без явного вызова f(), т.е. вместо

  struct C: public A, public B{
   void f(){
   B::f();
  }
 };

иметь что-то вроде

 struct C:virtual public A,virtual public B{

 };

(обратите внимание, что этот последний класс является абстрактным, для компилятора A::f не определен)

7
задан Fabio Dalla Libera 10 April 2012 в 05:45
поделиться