is_polymorphic шаблон в C ++
Опубликовано: 30 Декабря, 2021
Шаблон std :: is_polymorphic C ++ STL используется для проверки того, является ли тип типом полиморфного класса или нет. Он возвращает логическое значение, показывающее то же самое.
Синтаксис :
шаблон <класс T> struct is_polymorphic;
Параметр : этот шаблон содержит единственный параметр T (класс признака), чтобы проверить, является ли T типом полиморфного класса.
Возвращаемое значение : этот шаблон возвращает логическое значение, как показано ниже:
- Верно : если тип является полиморфным классом.
- Ложь : если тип - неполиморфный класс.
Ниже приведены программы, иллюстрирующие шаблон std :: is_polymorphic в C ++ STL:
Программа 1 :
// C++ program to illustrate // std::is_polymorphic template #include <iostream> #include <type_traits> using namespace std; struct gfg { virtual void foo(); }; struct geeks : gfg { }; class raj { virtual void foo() = 0; }; struct sam : raj { }; int main() { cout << boolalpha; cout << "is_polymorphic:" << '
' ; cout << "gfg:" << is_polymorphic<gfg>::value << '
' ; cout << "geeks:" << is_polymorphic<geeks>::value << '
' ; cout << "raj:" << is_polymorphic<raj>::value << '
' ; cout << "sam:" << is_polymorphic<sam>::value << '
' ; return 0; } |
Выход:
is_polymorphic: gfg: true выродки: правда радж: правда Сэм: правда
Программа 2 :
// C++ program to illustrate // std::is_polymorphic template #include <iostream> #include <type_traits> using namespace std; struct gfg { int m; }; struct sam { virtual void foo() = 0; }; class raj : sam { }; int main() { cout << boolalpha; cout << "is_polymorphic:" << '
' ; cout << "gfg:" << is_polymorphic<gfg>::value << '
' ; cout << "sam:" << is_polymorphic<sam>::value << '
' ; cout << "raj:" << is_polymorphic<raj>::value << '
' ; return 0; } |
Выход:
is_polymorphic: gfg: false Сэм: правда радж: правда
Хотите узнать о лучших видео и практических задачах, ознакомьтесь с базовым курсом C ++ для базового и продвинутого уровня C ++ и курсом C ++ STL для базового уровня плюс STL. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .