C++ 3d.Комментарии



"Виртуальные конструкторы" - часть 3


void g() { Derived d; Base* bp=&d; // стандартное преобразование: Derived* в Base* bp->vf1(); // вызов Derived::vf1() bp->vf2(); // вызов Base::vf2() bp->f(); // вызов Base::f() (не виртуальная) B* p=bp->vf4(); // вызов Derived::pf() и преобразование // возврата в B* Derived* dp=&d; D* q=dp->vf4(); // вызов Derived::pf(), преобразование // результата в B* не осуществляется dp->vf2(); // ошибка: отсутствует аргумент }

А что означает загадочная фраза "меньшие cv-квалификаторы"?

3.9.3. CV-квалификаторы [basic.type.qualifier]

  1. Множество cv-квалификаторов является частично упорядоченным:

нет cv-квалификатора < const
нет cv-квалификатора < volatile
нет cv-квалификатора < const volatile
const < const volatile
volatile < const volatile




Содержание  Назад  Вперед