C++中的std::is_base_of模板及其示例

C++中的std::is_base_of模板及其示例

C++ STL中的 std::is_base_of 模板存在于 < type_traits>头文件中。C++ STL的 std::is_base_of 模板用于检查类 Base 是否是类 Derived 的基类,它根据上述条件返回布尔值true或false。

头文件:

#include <type_traits>

模板类:

template <class Base,class Derived>
struct is_base_of;

语法:

std :: is_base_of <A,B> :: value

参数: 它接受以下两个类作为参数:

  • class A(作为基类): 它代表基类。
  • class B(作为派生类): 它代表派生类。

返回值: 此模板返回布尔变量,如下所示:

  • True: 如果基类(class A )是派生类(class B )的父级。
  • False: 如果基类(class A )不是派生类(class B )的父级。

以下是程序,演示了C/C++中的 std::is_base_of模板 :

程序1:

// C++ program to demonstrate the
      // std::is_base_of templates
      #include <bits/stdc++.h>
      #include <type_traits>
      using namespace std;

      // Base class A
      class A {
      };

      // Derived Class B
      class B : A {
      };

      // Class C
      class C {
      };

      // Driver Code
      int main()
      {

          cout << boolalpha;

          // Check if class A is a base class
          // of class B
          cout << "A is base class of B: "
              << is_base_of<A, B> :: value
              << endl;

          // Check if class B is a base class
          // of class A
          cout << "B is base class of A: "
              << is_base_of<B, A> :: value
              << endl;

          // Check if class C is a base class
          // of class B
          cout << "C is base class of B: "
              << is_base_of<C, B> :: value
              << endl;

          // Check if class C is a base class
          // of class C
          cout << "C is base class of C: "
              << is_base_of<C, C> :: value
              << endl;

          return 0;
      }
A is base class of B: true
B is base class of A: false
C is base class of B: false
C is base class of C: true

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

C++ 教程