Professional Documents
Culture Documents
Presentación …………………………………………….. 1
Preguntas Unidades I y II Clases y Constructores
Respuesta corta …………………………………. 2
Verdadero / Falso ……………………………. 4
Opción Múltiple …………………………………. 4
Preguntas Unidad III
Funciones Amigas y Sobrecarga
Respuesta corta …………………………………. 6
Verdadero / Falso ………………………………. 6
Opción Múltiple …………………………………. 7
Herencia
Respuesta corta …………………………………. 8
Verdadero / Falso ………………………………. 9
Opción Múltiple …………………………………. 9
Respuestas Unidades I y II
Respuesta corta …………………………………. 10
Verdadero / Falso ……………………………. 11
Opción Múltiple …………………………………. 11
Respuestas Unidad III
Funciones Amigas y Sobrecarga
Respuesta corta …………………………………. 11
Verdadero / Falso ………………………………. 12
Opción Múltiple …………………………………. 12
Herencia
Respuesta corta …………………………………. 12
Verdadero / Falso ………………………………. 12
Opción Múltiple …………………………………. 12
Banco de Reactivos de POO
U N I D A D E S I y II CLASES
RESPUESTA CORTA
24. ¿Dada la definición siguiente de la clase, qué parecen hacer y que hacen realmente estas líneas del código?
class clase1
{ public:
// otros miembros
clase1();
clase1 (float r): a(r) {};
private:
float a; };
a) b = y.davar2( ); b) x=y;
c) v.incrementavar2(); d) if (x == y) cout << "Objetos identicos " << endl;
else cout << "Objetos diferentes" << endl;
e) a = x.davar1(); f) y.incrementavar1();
VERDADERO O FALSO
28. El operador ‘::’ asocia una función o dato miembro a una clase, mientras que el operador punto ‘.’ a una función o dato miembro
de un objeto.
29. Clases diferentes no pueden tener funciones miembro con el mismo nombre.
30. Una función miembro de una clase puede ser privada.
31. Los datos miembros de la clase son casi siempre públicos.
32. Es posible tener varias etiquetas “private” en una definición de clase.
33. El operador de asignación no puede ser utilizado con los objetos de cualquier clase.
34. Todos los constructores para una clase deben ser privados.
35. Los datos y funciones miembro privados de una clase se pueden accesar solo en la definición de las funciones declaradas en la
parte public: de la misma clase.
OPCIÓN MULTIPLE
36. Al definir una clase, se debe de indicar los tipos de las variable contenidas en la clase, y las
a) declaraciones de las funciones miembros de la clase b) la palabra clave private
c) las definiciones de otras clases d) nada mas
37. ¿Cuáles de las siguientes definiciones de funciones es el encabezado correcto para pedirEdad de la clase Persona?
a) int pedirEdad(); b) int pedirEdad() c). int Person:pedirEdad() d) int Person::pedirEdad()
38. Dada la siguiente definición y la declaración de la función miembro, ¿Cuál es la vía correcta de obtener datos privados?
class Persona
{ public:
void muestraPersona(ostream& sale);
private:
int edad; float pesokg; string rfc; };
void muestraPersona(ostream& sale)
{ ¿ Cuál de las siguientes sentencias iría aquí ? }
a) sale << fulano.edad << fulano.pesokg << fulano.rfc; b) sale << fulano;
c) sale << edad << pesokg << rfc; d) muestraPersona(person);
39. Una función miembro que permite al usuario cambiar los valores de los datos miembro se le conoce como:
a. function mutadora b. una mutación c. una función manipuladora d. una función accesora
40. ¿Por qué generalmente se desea hacer privados a los datos miembro en una clase?
a) de modo que nadie pueda utilizar la clase. b) respuestas c, d y e
c) para asegurar la integridad de los datos d) proveer datos abstractos
e) ocultar información f)
41. Si se tiene una clase ClasePersona, ¿Cuál de lo siguiente declara correctamente al constructor en la definición de la clase?
a. int MiClasePersona(); b. MiClasePersona;
c. ClasePersona::ClasePersona(); d. ClasePersona();
42. ¿Cuándo debe ser privada una función miembro de una clase?
a) si será utilizada solo por otros miembros de la clase b) siempre
c) solo si nunca es utilizada d) nunca, es ilegal hacer privadas a las funciones
miembro
43. ¿Dada la definición siguiente de la clase, cómo podría usted utilizar al constructor para asignar valores a un objeto de esta clase?
class Inversion
{ public: y la siguiente declaración de objeto
Inversion();
Inversion(float interes, float nuevoSaldo); Inversion MiInversion;
float daSaldo();
float daTasaint();
void ponTasaint(float interes);
void ponSaldo(float nuevoSaldo);
private:
float saldo, tasaint; };
a) MiInversion = Inversion ( float mitasadeint, float miSaldo);
b) MiInversion = Inversion ( mitasadeint, miSaldo);
c) MiInversion = Inversion { mitasadeint, miSaldo};
d) MiInversion = Inversion [ mitasadeint, miSaldo];
44. Si usted diseña una una clase con datos miembros privados, y no proporciona funciones accesoras y mutadoras , entonces:
a. byd b. los datos no pueden ser cambiados o vistos por nadie
c. ninguna de las anteriores d. la clase no puede ser usada
45. ¿Qué es lo que haría falta en la siguiente definición de clase?
class ClaseProducto
{ public:
ClaseProducto(int NuevoTipo, float NuevoCosto);
int daTipo();
float daCosto();
void ponTipo(int NuevoTipo);
void ponCosto(float NuevoCosto);
private:
int tipo;
float costo; };
a) funciones accesoras b) funciones mutadoras c) nada d) un constructor por default
UNIDAD III
VERDADERO O FALSO
16. Se puede cambiar un operador de binario a unario o de unario a binario, sobrecargando el operador,
17. No se puede cambiar la asociatividad de un operador.
18. Dentro de la declaración de la clase se declaran las funciones amigas.
19. Con la sobrecarga se puede cambiar el comportamiento de +, * , - y / para los números flotantes .
20. Los argumentos de los operadores sobrecargados pueden ser de cualquier tipo.
21. No se pueden crear operadores nuevos .
22. Usted puede sobrecargar el operador ‘ . ’ .
23. Se puede hacer + tenga precedencia más alta que * al sobrecargar el operador.
24. Se permite que + sea un operador binario o unario en una sobrecarga del operador .
25. Los operadores sobrecargados deben ser amigos de la clase.
26. Las funciones constantes pueden invocar a las funciones accesoras de la clase que sean públicas.
27. Las funciones constantes pueden llamar a las funciones públicas mutadoras de la clase.
28. Si se tiene funciones accesoras y mutadoras en la clase, no debe tener funciones amigas.
29. Todos los operadores pueden ser sobrecargados
30. Las funciones amigas son miembros de la clase
OPCIÓN MULTIPLE
¿Cuáles de las siguientes son accesos legales en main a los miembros de la clase miClase?
a) a.miClase(); b) a.k1(); c) b.q d) b.su(b ) e) su(b,a);
34. ¿Cuáles funciones miembro permiten que el compilador realice la conversión automática de tipo a uno diferente a la
clase?
a) Las mutadoras b) Esto sucede ya c) La sobre carga de d) Esto no se puede hacer.
automáticamente. constructores.
35. ¿Cuántos parámetros hay en un operador binario implementado como amigo?
a) 0 b) 1 c) los que d) 2
necesite
36. Para sobrecargar funciones con nombres simbólicos (como + - / <<), usted debe utilizar la palabra clave _________
antes del nombre simbólico.
a) operator b) referencia c) const d) new
37. ¿Si tenemos una selección completa de funciones accesoras y mutadoras, por qué tendríamos funciones amigas?
a) ninguna respuesta b) no debe c) acceso eficiente a los miembros d) las funciones amigas usan a
satisfactoria tenerlas. de los datos privados las accesoras o mutadoras de
todos modos
38. ¿Por qué una función amiga recibe al objeto de la clase como parámetro por referencia?
a) respuestas c) y d) b) Para que la función amiga NO cambie los valores de
los datos miembros
c) acceso eficiente a los miembros de los datos privados d) Para que la función amiga cambie los valores de los
datos miembros
39. Ya que las funciones de accesoras de una clase no modifican a los miembros dato del objeto, ¿Qué modificador debe
tener la función?
a) eso es falso b) referencia c) const d) private
42. ¿En la clase siguiente cuántos miembros (los datos y las funciones) tiene?
class Coordenadas( )
{ public:
Coordenadas( );
Coordenadas(float, float);
Coordenadas(float);
float dameNumerador( );
float dameDenominador( );
friend Coordenadas suma(Coordenadas, Coordenadas);
friend void muestra(ostream& sale, const Coordenadas& objeto);
private:
float coordenadax;
float coordenaday; };
a) 7 b) 6 c) 5 d) 9 e) 8
UNIDAD III
HERENCIA
RESPUESTA CORTA
OPCIÓN MULTIPLE
65. Seleccione la sintaxis correcta para declarar una clase derivada H1 con herencia pública de una clase base B1
a) class B1 : public class H1 { …… }; b) class H1 : public B1 { …… }; c) class B1 : public H1 { … };
d) public class H1 : class B1 { …… }; e) ninguna de las anteriores
66. ¿Otra forma de nombrar a las clases hijas?
a) subclases b) clase descendiente c) clase derivada d) todas las anteriores e) ninguna de las mencionadas
67. Suponga que la clase Nieto es derivada de la clase Padre que a su vez fue derivada de la clase Abuelo. Cuando se declara un
objeto de la clase Nieto, tres constructores serán llamados: Padre, Nieto, Abuelo. ¿En qué orden son llamados los constructores?
a) Abuelo, Nieto, b) Padre, Abuelo, c) Nieto, Abuelo, d) Padre, Abuelo, e) Abuelo, Padre,
Padre. Nieto. Padre. Nieto. Nieto
68. ¿Quiénes NO pueden accesar o modificar a las variables miembro protegidas de la clase Base?
a) las funciones amigas de la clase derivada
b) las funciones miembro de la clase derivada
c) las funciones mutadoras de la clase base
d) las funciones ajenas a la clase derivada y a la clase base
69. ¿En qué caso se debe tener funciones virtuales?
a) cuando las clases derivadas necesitan redefinir la función de la clase base.
b) cuando las funciones son de un operador.
c) cuando la clase derivada emplea una la función de la clase base.
d) cuando se emplean miembros protegidos como parámetros.
70. Si la clase Nieto es derivada de la clase Padre y esta a su vez fue derivada de la clase Abuelo. Al destruir un objeto de la clase
Nieto, tres destructores serán llamados: ~Padre, ~Nieto, ~Abuelo. ¿En qué orden son llamados los destructores?
a) Abuelo, Nieto, b) Padre, Abuelo, c) Nieto, Padre, d) Padre, Abuelo, e) Abuelo, Padre,
Padre. Nieto. Abuelo Nieto. Nieto
71. Dada la declaración siguiente en la clase base, ¿Cuál declaración en la clase derivada es polimórfica?
virtual void muestra(ostream& salida);
a) virtual void muestra( );
b) virtual void print(ostream& sale);
c) void print(ostream& sale);
d) void print( );
e) b) yc)
72. Dada la siguiente herencia de clases
a) 4 b) 3 c) 5 d) 6 e) 2
U N I D A D E S I y II FUNDAMENTOS
RESPUESTA CORTA
1. Es una variable que además de tener valores tiene funciones como miembros.
2. En una estructura todos los miembros son públicos y solo son datos; en una clase puede haber datos o funciones como miembros,
los miembros privados son inaccesibles para cualquier función a excepción de las funciones miembro de la clase, o a menos que
sean declarados como públicos.
3. Objetos.
4. Combinar varias cosas: como variables y funciones de un objeto de alguna clase.
5. En una definición de clase, cualquier función o dato miembro colocado después del especificador private: solo podrá se accesado
en la declaración de las funciones miembro de la clase; Los miembros que siguen al especificador public: y antes de cualquier
otro especificador pueden ser accesados por cualquier definición de función.
6. La clase.
7. Encapsulamiento.
8. Ámbito o resolutor de alcance.
9. Función accesora.
10. mostrar(cout);
11. Nada ni siquiera void.
12. Por defecto o default.
13. De inicialización.
14. El constructor por default.
15. En la definición de una función miembro de una clase, bajo el formato siguiente
tipoRegreso nombreClase::nombre_Funcion(listaParametros)
16. Porque los miembros (datos y funciones) de la clase pueden ser accesados en las definiciones de la clase son hacer referencia a la
clase que pertenecen y porque no hay forma de saber que objeto será sido creado por el programa
17. Función mutadora.
18. El mismo de la clase.
19. void Termometro::pontemp(float pongrados, char CoF)
{ grados=pongrados;
escala=CoF; }
20. El usuario de la clase se interesa en los miembros públicos. El usuario no puede tener acceso a los miembros privados, ya que no
tiene ningún uso (directo) verdadero para él. Por lo que los miembros públicos deben ser puestos primero en una clase.
21. Al definir cualquier clase esta decide que funciones pueden accesar a los miembros privados de la clase, asegurando el control y
la integridad de los datos. en caso contrario el usuario podría corromperlos (datos y miembros).
22. clase1 objeto1={7,4};
23. .
a) No se está llamando al constructor, se está llamando a una función que se llama igual que un constructor. Error.
b) Llama al constructor clase1:clase1(int), constructor con parámetros.
c) Es un llamado explícito al constructor clase1:clase1(int).
d) Llamado apropiado para invocar al constructor por defecto para el objeto w.
24. .
a) Se declara a una función ‘clase1’ sin argumentos que regresa un objeto clase1. Se puede confundir con declarar un objeto
clase1 inicializado por el constructor por default.
b) ‘y’ es un objeto clase A, inicializado por el constructor clase1:clase1 (int), miembro a=4.
c) Un llamado explícito al constructor clase1:clase1 (int), constructor con argumentos. Miembro a del objeto y igual a 8.
d) Llamado correcto al constructor por default
25. .
a) Incorrecto, todos los miembros de la clase vector3d son privados. Solo se permite en las definiciones de las funciones miembro.
b) Correcta, a esta declarada como publica en la clase Pareja.
c) Correcto los miembros en una estructura punto3d son públicos a menos que se especifique lo contrario.
d) Incorrecta, todos los miembros de la clase vector3d son privados. Solo se permite en las definiciones de las funciones miembro.
e) Incorrecta, es miembro privado en la declaración de la clase Pareja.
26.
27.
a) Es ilegal, ya que es miembro privado
b) Es correcto copiar objetos de la misma clase
c) No permitido es una función privada
d) Es ilegal comparar objetos con el operador “==” (en estas unidades no se ve sobrecarga de operadores)
e) Permitido es una función publica
f) Permitido es una función publica
VERDADERO O FALSO
OPCIÓN MULTIPLE
36. a) 37. d) 38. c) 39. a) 40. b) 41. d) 42. a) 43. b) 44. a) 45. d)
1. Es aquella función que puede accesar a los miembros privados de la clase en la que está declarada como amiga.
2. Las funciones amigas se definen como cualquier función común, dentro de la declaración de la clase deben ser declaradas con la
palabra clave friend, se invocan sin hacer uso del operador punto. Las funciones miembro si están definidas fuera de la clase
deben indicar la clase a la que pertenecen y usar el operador de ámbito, al ser llamadas se usa el nombre del objeto y el operador
punto.
3. friend tipodevuelto nombrefuncion(listado de tipo [e identificadores de parámetros] );
4. Como cualquier función normal tipodevuelto nombrefuncion(listado de tipo e identificadoresde parámetros);
5. Fuera de cualquier otra función, ya que son globales a menos que pertenezcan a otra clase.
6. .
a) es una promesa al compilador de no intentar escribir código que realice cualquier cambio.
b) solicita al compilador que garantice cumplir esta promesa.
c) el uso de la palabra clave const no se puede negociar, transformar o adaptar
7. La implementación de código para emplear los operadores necesarios para manipular objetos de alguna clase especifica acorde al
comportamiento que se espera de ellos.
8. Porque el compilador provee automáticamente un operador de asignación para copiar los miembros del objeto
9. Miembro
10. Amiga
11. Que el objeto no será modificado en sus miembros.
12. Unario
13. Referencia constante
14. Una referencia a flujo (&ostream o &istream).
15. Binario.
VERDADERO O FALSO
16. FALSO 17. VERDADERO 18. VERDADERO 19. FALSO 20. FALSO
21. VERDADERO 22. FALSO 23. FALSO 24. VERDADERO 25. FALSO
26. VERDADERO 27. FALSO 28. FALSO 29. FALSO 30. FALSO
OPCIÓN MULTIPLE
VERDADERO O FALSO
55. VERDADERO 56. FALSO 57. FALSO 58. FALSO 59. VERDADERO
60. VERDADERO 61. FALSO 62. FALSO 63. VERDADERO 64. VERDADERO
OPCIÓN MULTIPLE