Prediga la salida de los siguientes programas de C++.
Pregunta 1
// Assume that integers take 4 bytes. #include<iostream> using namespace std; class Test { static int i; int j; }; int Test::i; int main() { cout << sizeof(Test); return 0; }
Salida: 4 (tamaño de un entero)
los miembros de datos estáticos no contribuyen en el tamaño de un objeto. Entonces ‘i’ no se considera en el tamaño de la Prueba. Además, todas las funciones (tanto estáticas como no estáticas) no contribuyen en tamaño.
Pregunta 2
#include<iostream> using namespace std; class Base1 { public: Base1() { cout << " Base1's constructor called" << endl; } }; class Base2 { public: Base2() { cout << "Base2's constructor called" << endl; } }; class Derived: public Base1, public Base2 { public: Derived() { cout << "Derived's constructor called" << endl; } }; int main() { Derived d; return 0; }
Salida: El constructor de Base1 llamado El constructor de Base2
llamado El constructor de Derivado llamado
En caso de herencia múltiple, los constructores de las clases base siempre se llaman en orden de derivación de izquierda a derecha y los destructores se llaman en orden inverso.
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