La plantilla std::is_base_of de C++ STL está presente en el archivo de encabezado <type_traits> . La plantilla std::is_base_of de C++ STL se usa para verificar si la clase Base es la clase base de la clase Derivada o no. Devuelve el valor booleano verdadero o falso sobre la base de la condición anterior.
Archivo de cabecera:
#include<type_traits>
Clase de plantilla:
template <class Base, class Derived> struct is_base_of;
Sintaxis:
std::is_base_of<A, B>::value
Parámetros: Acepta las siguientes dos clases como parámetros:
- clase A (como clase base): representa la clase base.
- clase B (como una clase Derivada): Representa la clase derivada.
Valor devuelto: esta plantilla devuelve una variable booleana como se muestra a continuación:
- Verdadero: si la clase Base (clase A ) es el padre de la clase Derivada (clase B ).
- Falso: si la clase Base (clase A ) no es el padre de la clase Derivada (clase B ).
A continuación se muestra el programa para ilustrar la plantilla std::is_base_of en C/C++:
Programa 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
Referencia: http://www.cplusplus.com/reference/type_traits/is_base_of/
Publicación traducida automáticamente
Artículo escrito por bansal_rtk_ y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA