¿A dónde apunta el puntero s1 tras la ejecución de la siguiente instrucción?
char* const s1 = "ABC"; s1++;
A
C
B
No se ejecuta. Hay error de compilación.
En el siguiente código, ¿qué valor tienen las variables antes de ejecutar la sentencia return?
int& min(int &a, int& b){ return (a<b) ? a : b }
int main(){ int i=1, j=2; min(i,j)=3; return 0; }
i=3 j=3
i=1 j=2
i=3 j=2
Error de compilación. No se puede asignar valor a una función.
En el siguiente código, ¿qué valor tiene la variable arg tras la ejecución de la función f()?
void f(int param){ param=10; }
int main(){ int arg=1; f(arg); }
1
Indefinido. Depende del compilador.
10
Error de compilación
void f(int *param){ param=10; }
int main(){ int arg=1; f(&arg); }
error en tiempo de ejecución
error de compilación
const char *s1="ABC"; s1++;
No se ejecuta. Hay error de compilación
El lenguaje C++ solo permite la sobrecarga de funciones cuando:
se utiliza el mismo nombre de función y el mismo número de parámetros con tipos distintos
se utiliza el mismo nombre de función y distinto número de parámetros
se utiliza el mismo nombre de función y lista de parámetros distinta
se utiliza el mismo nombre de función y la misma lista de parámetros pero distinto valor de retorno
Dada la definición de la clase, ¿cual de las siguientes códigos es incorrecto para el constructor?
class dummy{ int x,y; public: dummy(int, int); };
dummy::dummy(int i, int j): x(i), y(j) {}
dummy::dummy(int i, int j){ x=i; y=j;}
Todas son correctas
dummy::dummy(int i, int j): x(i) {y=j}
¿Cuál de los siguientes elementos del lenguaje C++ no permite especificar métodos?
class
struct
union
Todos permiten especificar métodos
Declarar un miembro protected en una clase implica:
que tiene la misma visibilidad que si fuese public y las clases derivadas lo heredan
que tiene la misma visibilidad que si fuese private y las clases derivadas lo heredan
que tiene la misma visibilidad que si fuese private y las clases derivadas no lo heredan
que tiene la misma visibilidad que si fuese public y las clases derivadas no lo heredan
Si se realiza herencia protected, los miembros public de la clase base:
son protected en la clase derivada
son private en la clase derivada
son public en la clase derivada
no son accesibles en la clase derivada
Para definir que un miembro de la clase es compartido por todas las instancias de la clase, se utiliza la palabra reservada:
inline
static
virtual
friend
Si se realiza la herencia public, los miembros private de la clase base:
Para identificar la ocurrencia de diferentes situaciones excepciones en un mismo bloque de código, es necesario:
para cada tipo de excepción, especificar un bloque catch con un parámetro del tipo de excepción a manejar
anidar varios bloques try
lanzar la sentencia throw con varios parámetros, uno por cada tipo de excepción
especificar un bloque catch con varios parámetros, uno por cada tipo de excepción
En el lenguaje C++ la ocurrencia de una situación excepcional que requiere un tratamiento especial se invoca con la palabra clave:
try
throw
exception
catch
El código a ejecutar para manejar la ocurrencia de una excepción se encierra en un bloque:
¿Qué métodos deben especificarse en toda plantilla (template)?
no hay que especificar ningún método de forma obligatoria
un constructor por defecto
un constructor de copia y el operador de asignación
todos los constructores, el destructor y e operador de asignación
En el lenguaje C++ las plantillas (template) permiten:
definir funciones y clases con tipos genéricos que se instancian en tiempo de compilación
reutilizar la definición de una función para alterar su comportamiento
definir clases abstractas de las que no se pueden crear instancias
definir funciones y clases con tipos genéricos que se instancian en tiempo de ejecución
Dada la siguiente definición de plantilla (template), ¿cuál de los siguientes usos de la plantilla es la correcta?
template<class T, int N> class miVector{ private: T v[N]; public: miVector(int n); };
int N=5; miVector<int,5> v(N);
int N=5; miVector<int, N> v(N);
const int N=5; miVector<int, N> v;
int N=5; miVector<int, N> v(5);
Al utilizar una plantilla (template), ¿cuándo no es necesario indicar el tipo genérico?
en las plantillas de funciones cuando el tipo genérico se utilice como parámetro de la función y el compilador pueda deducir el tipo sin ambigüedad
únicamente en las plantillas de clases cuando el compilador pueda deducir el tipo genérico sin ambigüedad
siempre hay que especificar el tipo de los parámetros de una plantilla
nunca hay que especificar los tipos al utilizar una plantilla
Dada la siguiente definición de plantilla (template), ¿cuál de los siguientes códigos es correcto para el constructor?
template <class T, int N> miVector<T,N>::miVector(int n=N){ v=new T[n];}
template <class T, int N> miVector<T,N>::miVector(int n){ v=new T[n]{}
template <class T, int N> miVector(int n=N){ v=new T[N];}
template <class T, int N> miVector<T,N>::miVector(int n=N){}
Dada la siguiente definición de clases, ¿qué valor se visualiza en la función main()?
5
0
Ninguno. Error de compilación
Dada la siguiente definicón de clases, ¿qué valor se visualiza en la función main()?
Ninguno. Error de compilación.
Dada la siguiente definición de clases, ?qué valor se visualiza en la función main()?
A donde apunta el puntero s1 tras la ejecución de la siguiente secuencias:
Const char* s1="ABC";
S1++;
No se ejecuta
'A'
'C'
'B'
La clase base de las excepciones utilizadas en la librería estándar es
Exception
Logic_error
Bad_exception
La utilización de plantillas/template de funciones en el lenguaje C++ permite...
La definición de una familia parametrizada de funciones
La utilización en el código de la STL
La declaración de una jerarquía de clases.
Especificar al compilador la forma de crear una familia parametrizada de clases
Si se utiliza herencia public, los miembros private de la clase base:
Son private en la clase derivada
Son public en la clase derivada
No son accesibles en la clase derivada
Son protected en la clase derivada
Dada la siguiente definición de clase, ¿cuál de las siguientes sentencias no
se corresponde con una llamada correcta del constructor?
Class dummy{
Public:
Dummy(){};
};
dummy *a = new dummy;
dummy a();
dummy a;
Todos son correctas;
¿Qué elementos adminten la clausula firend?
Funciones y clases
Solo clases
Solo funciones
En C con funciones y en C++ con clases
El lenguaje C++ permite especificar un valor por defecto en un parámetro de una función:
Cuando todos los parámetros de la función son constantes
Cuando todos los parámetros siguientes en la lista también tiene valor por defecto
Cuando todos los parámetros de la función tiene valor por defecto.
Cuando todos los parámetros anteriores en la lista también tiene valor por defecto
Dada la siguiente definición de clases, ?qué valor se visualiza en la función main()