me podeis dar la solucion del test?

jorge
02 de Septiembre del 2005
1. En un programa en C++, un fichero de implementación sirve para:

a) Contener el interfaz de una clase
b) Contener el código de una unidad de compilación
c) Decirle al compilador las reglas de generación del ejecutable
d) Ninguna de las anteriores

2. Las reglas de ámbito o Scope sirven para:

a) Conocer el tiempo de vida de un objeto
b) Saber donde se crea y destruye un objeto
c) Saber en que partes del programa 1 variable u objeto es visible
d) Todas las anteriores

3. El principal cometido de los niveles de acceso en una clase es:


a) Indicar al preprocesador que tiene que hacer
b) Separar interfaz e implementación
c) Hacer el código más legible
d) Ninguna de las anteriores

4. El nivel privado permite al acceso a :

a) Solo a objetos del mismo tipo
b) Solo a objetos dentro del mismo fichero
c) Cualquier objeto menos los del mismo tipo
d) Ninguna de las anteriores


5. El interfaz de un clase esta formado por:

a) El conjunto de métodos y atributos públicos
b) Los métodos constructores
c) Es el conjunto de todos los métodos y atributos de una clase
d) Es el conjunto de métodos y atributos amigos

6. Para que un objeto realice operaciones (invoque métodos) sobre otro, es necesario que conozca (que tengo acceso a) :

a) Quien ha escrito la clase
b) Únicamente el interfaz de la clase
c) Únicamente la implementación de la clase
d) Todas las anteriores



7. Los constructores y destructores sirven para:

a) Inicializar y finalizar el estado de un objeto
b) Arrancar y parar un programa
c) Poner la memoria a cero
d) Imprimir un mensaje al principio y final del programa

8. El constructor de un objeto se invocará:

a) Debe ser llamado explícitamente como cualquier otra función
b) Automáticamente cuando se cree el objeto
c) Solo si el objeto es global
d) Ninguna

9. El puntero This:

a) Hay que declararlo siempre en el constructor
b) Existe siempre y apunta al propio objeto
c) Eso es de Java no de C++
d) Ninguna

10. La sobrecarga de funciones consiste en que dentro de un ambito, 2 funciones se distinguen por:

a) Su nombre y argumentos
b) Su nombre tipo de retorno y argumentos
c) Solo su nombre
d) Su nombre y su tipo de retorno

11. Se da herencia múltiple cuando:

a) Una clase hija hereda de dos o más clases padre
b) Una clase padre es heredada por dos o más clases hijas
c) Cualquiera de las anteriores
d) Ninguna

12. La herencia virtual sirve para:

a) No tener necesidad de invocar a los constructores
b) Que los constructores se invoquen automáticamente al salir del ámbito
c) Tener una sola copia de las clases base cuando hay herencia múltiple
d) Ninguna








13. Orden de ejecución de los constructores

a) Aleatorio (indeterminado)
b) Desde la clase más alta de la jerarquía (clase padre) hacia las más profundas o derivadas (clases hija)
c) Desde la clase más profunda o derivada a la jerarquía (clase hija) hacia la más alta (padre)
d) De izquierda a derecha y de arriba abajo

14. Orden de ejecución de los destructores

a) Aleatorio
b) Desde la clase más alta de la jerarquía (clase padre) hacia las más profundas o derivadas (clases hija)
c) Desde la clase más profunda o derivada a la jerarquía (clase hija) hacia la más alta (padre)
d) De izquierda a derecha y de arriba abajo

15. Los destructores deben ser virtuales para…

a) Que se puedan invocar explícitamente
b) Que la clase sea abstracta
c) Que se invoquen al destruir al objeto representado por uno de sus antecesores
d) Ninguna

16. En una jerarquía de clases, los constructores…

a) Solo son necesarios en las clases hijas
b) No sirve de nada
c) Deben reunir los argumentos propios y los de las clases padres, e invocar a todos los constructores de todos los niveles
d) Deben reunir los argumentos propios y los de las clases padres, invocando los constructores de las clases inmediatamente superiores

17. Los métodos virtuales sirven para…

a) Indicarle al compilador que nunca se va a invocar desde un puntero
b) Implementar la herencia múltiple
c) Implementar el polimorfismo
d) Ninguna

18. Para definir un método como virtual

a) Poner la palabra clave “virtual” delante de la definición del método
b) Poner la palabra clave “virtual” delante de la declaración del método
c) Las dos anteriores
d) Ninguna, el compilador lo sabe solo


19. ¿Qué cualidad especial tiene una clase abstracta?

a) Para declarar un interfaz común a todas las clases hijas
b) Para proporcionar una implementación común a las clases hijas
c) Para que no se puedan crear objetos de esa sola clase, solo de las hijas
d) Ninguna

20. En C++ además de ‘new’ se usa ‘malloc ( )’ para pedir memoria dinámica. Pero hay una diferencia

a) Son equivalentes
b) ‘malloc’ inicializa el fragmento de memoria todo a 0
c) ‘new’ invocará al constructor obj
d) ‘malloc’ no se usa en C++




































PRACTICA C++

Sea el siguiente diagrama de clases:



Los atributos de las clases que nos interesan son:

§ Clase cliente

- Código cliente: entero
- Nombre: string
- Dirección: string
- NIF: string
- Tipo de cliente: al contado / a crédito / reducida (enumerado)
- Animales de su propiedad: asociación con la clase paciente de uno máximo 100

· Clase paciente

- Nombre: string
- Edad: entero
-
· Clase mamífero

- nº de chip identificación: string

· Clase perro

- Raza: enumerado