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.