C++: Funciones y clases amigas y reserva de memoria

Pregunta 1:

Respecto a la amistad entre clases

a) Si la clase A es amiga de la clase B, entonces las funciones miembro de B pueden acceder a la parte privada de A

b) Si la clase A es amiga de la clase B, entonces B también es amiga de A

c) Si la clase A es amiga de la clase B y B es amiga de la clase C, entonces A también es amiga de C

d) Las anteriores respuestas no son correctas

Pregunta 2:

Cuál es el operador empleado para liberar memoria

a) remove

b) clear

c) delete

d) Las anteriores respuestas no son correctas

Pregunta 3:

Cuál es el operador empleado para reservar memoria

a) new

b) create

c) reserve

d) Las anteriores respuestas no son correctas

Pregunta 4:

Respecto a las directivas del preprocesador, ¿cuál de las siguientes afirmaciones es falsa?

a) Todas las directivas empiezan con #

b) Las directivas se procesan después de que el programa se compile

c) Cada construcción #if termina con #endif

d) La directiva #undef descarta una constante simbólica

Pregunta 5:

Cuando en el código se reserva memoria para un array de objetos

a) El programador tiene que liberar la memoria con delete

b) El programador tiene que liberar la memoria con delete[]

c) El programador tiene que liberar la memoria invocando al destructor de cada objeto de forma individual

d) Las anteriores respuestas no son correctas

Pregunta 6:

Respecto a la amistad

a) Al declarar una función como amiga de una clase, la función pasa a ser miembro de la clase

b) Una función amiga sólo puede acceder a la parte protegida y nunca a la privada

c) Una función amiga no puede tener como parámetro un objeto de la clase de la que es amiga

d) Las anteriores respuestas no son correctas

Pregunta 7:

Respecto a la amistad y la ocultación de información

a) Las funciones y clases amigas sólo pueden acceder a la parte protegida de una clase

b) La parte privada de una clase sólo es accesible por las funciones miembro de la propia clase

c) La amistad sólo se puede definir si la clase no posee parte privada

d) Las anteriores respuestas no son correctas

Pregunta 8:

¿Existe alguna diferencia entre las dos siguientes líneas de código?:
myObj *x = new myObj[100]; delete x;
myObj *x = new myObj[100]; delete [] x;

a) Son equivalentes

b) delete x invoca el destructor para todos los objetos del array

c) delete [] x invoca el destructor para todos los objetos del array

d) Las anteriores respuestas no son correctas

Pregunta 9:

La compilación condicional permite

a) Incluir diferentes partes del código en tiempo de compilación

b) Incluir diferentes partes del código en tiempo de ejecución

c) Incluir diferentes partes del código en tiempo de depuración

d) Todas las respuestas son correctas

Pregunta 10:

Las guardas de inclusión se emplean para

a) Incluir de forma condicional la definición de una clase

b) Evitar incluir la definición de una clase dos o más veces

c) Evitar el problema de la redefinición de una clase

d) Todas las respuestas son correctas



Inicio