Inheritance

1. What is inheritance in C++?

Answer: Reusing and extending existing class definitions

EN Explanation:
Inheritance lets a new class reuse code from an existing class and add new features, reducing duplication.

ES Explicación:
La herencia permite que una clase nueva reutilice código de una clase existente y agregue funciones nuevas, evitando duplicación.

2. A class that is inherited from is called a:

Answer: Base class

EN Explanation:
The base class is the original class whose members are passed down to another class.

ES Explicación:
La clase base es la clase original cuyos miembros se heredan a otra clase.

3. A class that inherits from another class is called a:

Answer: Derived class

EN Explanation:
A derived class receives attributes and methods from the base class.

ES Explicación:
Una clase derivada recibe atributos y métodos de la clase base.

4. In inheritance, a derived class automatically gets:

Answer: Both attributes and methods

EN Explanation:
Everything public or protected in the base class is inherited by the derived class.

ES Explicación:
Todo lo público o protegido en la clase base se hereda a la clase derivada.

5. Which relationship best describes inheritance?

Answer: is‑a

EN Explanation:
A derived class is a specialized version of the base class (e.g., Dog is an Animal).

ES Explicación:
Una clase derivada es un tipo especializado de la clase base (ej. Perro es un Animal).

6. Which is an example of inheritance?

Answer: Dog is an animal

EN Explanation:
A dog is a specific type of animal, showing an is‑a relationship.

ES Explicación:
Un perro es un tipo de animal, mostrando una relación es‑un.

7. Which relationship represents aggregation/composition?

Answer: has‑a

EN Explanation:
Aggregation/composition means one object has another (e.g., Car has an engine).

ES Explicación:
Agregación/composición significa que un objeto tiene otro (ej. Un carro tiene un motor).

8. If class B is derived from class A, A is called:

Answer: Base class

EN Explanation:
A is the class being inherited from.

ES Explicación:
A es la clase de la cual se hereda.

9. A class derived from another derived class is called:

Answer: Multi‑level derived class

EN Explanation:
This is inheritance across multiple levels (A → B → C).

ES Explicación:
Es herencia en varios niveles (A → B → C).

10. A derived class object contains:

Answer: Both base class and its own members

EN Explanation:
It inherits base class members and also has its own unique members.

ES Explicación:
Hereda los miembros de la clase base y también tiene sus propios miembros.

11. Private members of a base class are:

Answer: Not accessible in derived classes

EN Explanation:
Private members can only be accessed inside the class where they are declared.

ES Explicación:
Los miembros privados solo pueden usarse dentro de la clase donde se declaran.

12. Protected members are accessible in:

Answer: Derived classes

EN Explanation:
Protected allows access inside the class and its child classes.

ES Explicación:
Protected permite acceso dentro de la clase y sus clases derivadas.

13. Which access specifier allows access in derived classes but not outside?

Answer: protected

EN Explanation:
Protected hides members from outside code but allows derived classes to use them.

ES Explicación:
Protected oculta los miembros del exterior pero permite que las clases derivadas los usen.

14. Default inheritance access specifier for a class is:

Answer: private

EN Explanation:
Classes default to private inheritance unless specified otherwise.

ES Explicación:
Las clases usan herencia privada por defecto a menos que se indique lo contrario.

15. Default inheritance access specifier for a struct is:

Answer: public

EN Explanation:
Structs default to public inheritance.

ES Explicación:
Los structs usan herencia pública por defecto.

16. When a base class is inherited as public:

Answer: Access levels remain unchanged

EN Explanation:
Public inheritance preserves the original access levels of the base class.

ES Explicación:
La herencia pública mantiene los niveles de acceso originales de la clase base.

17. When a base class is inherited as protected:

Answer: Public and protected become protected

EN Explanation:
Public members get downgraded to protected in the derived class.

ES Explicación:
Los miembros públicos se vuelven protegidos en la clase derivada.

18. When a base class is inherited as private:

Answer: Public and protected become private

EN Explanation:
Everything becomes private inside the derived class.

ES Explicación:
Todo se vuelve privado dentro de la clase derivada.

19. Private members of a base class:

Answer: Cannot be accessed anywhere else

EN Explanation:
Private members are only accessible inside the class where they are declared.

ES Explicación:
Los miembros privados solo pueden usarse dentro de la clase donde se declaran.

20. The “has‑a” relationship is best implemented using:

Answer: Composition or aggregation

EN Explanation:
One object contains another object.

ES Explicación:
Un objeto contiene a otro objeto.

21. Which is NOT a valid base class access specifier?

Answer: static

EN Explanation:
Only public, protected, and private are valid inheritance specifiers.

ES Explicación:
Solo public, protected y private son modos válidos de herencia.

22. Which keyword allows changing access of inherited members?

Answer: using

EN Explanation:
using can promote or demote access levels of inherited members.

ES Explicación:
using puede cambiar el nivel de acceso de los miembros heredados.

23. A using declaration can:

Answer: Change access level of inherited members

EN Explanation:
It can expose protected members as public or restrict them.

ES Explicación:
Puede hacer públicos miembros protegidos o restringirlos.

24. Which statement is TRUE about inheritance?

Answer: Derived class extends base class functionality

EN Explanation:
The derived class adds new features on top of what it inherits.

ES Explicación:
La clase derivada agrega nuevas funciones además de lo que hereda.

25. Why should member variables usually be private?

Answer: Data hiding and integrity

EN Explanation:
Private variables protect data from accidental or unauthorized modification.

ES Explicación:
Las variables privadas protegen los datos de modificaciones indebidas o accidentales.