Использование декларации (производный класс)

struct B1{
  int d;
  void fb(){};
};

struct B2 : B1{
  using B1::d;
  using B1::fb;

  int d;               // why this gives error?
  void fb(){}          // and this does not?
};

int main(){}

Это потому, что B1 :: fb () обрабатывается как B1 :: fb (B1 *) и B2 :: fb () рассматривается как B2 :: fb (B2 *) ? То есть, помогает ли неявный параметр различать их?

$ 13.3.1 / 4-

Для введенных неконверсионных функций с помощью объявления об использовании в производный класс, функция считается быть членом производного класса для цель определения типа параметр неявного объекта.

6
задан kiamlaluno 23 August 2010 в 04:51
поделиться