Cuando una clase o estructura en C++ tiene funciones miembro especiales proporcionadas por el compilador o explícitamente predeterminadas, entonces es un tipo trivial. Ocupa un área de memoria contigua. Puede tener miembros con diferentes especificadores de acceso.
Los tipos triviales tienen un constructor predeterminado trivial, un constructor de copia trivial, un operador de asignación de copia trivial y un destructor trivial. En cada caso, trivial significa que el constructor/operador/destructor no lo proporciona el usuario y pertenece a una clase que tiene:
- Sin funciones virtuales ni clases base virtuales,
- Sin clases base con un constructor/operador/destructor no trivial correspondiente
- No hay miembros de datos de tipo de clase con un constructor/operador/destructor no trivial correspondiente
Los siguientes ejemplos muestran tipos triviales:
/*Since there are no explicit constructors, there exists a default constructor*/ struct Trivial { int i; private: int j; }; /* In Trivial2 structure, the presence of the Trivial2(int a, int b) constructor requires that you provide a default constructor. For the type to qualify as trivial, we must explicitly default that constructor.*/ struct Trivial2 { int i; Trivial2(int a, int b) { i = a; } Trivial2() = default; };
Referencia: https://msdn.microsoft.com/en-us/library/mt767760.aspx
Este artículo es una contribución de Rohit Thapliyal . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA