CPP Flashcards
¿Cuando se da el problema del diamante en c++ y como se soluciona?
Cuando una clase hereda de otras dos y estás a su vez lo hacen de una misma base. La solucion es que las dos clases que tienen una misma base especifique herencia “virtual” para que se puede resolver esa “repeticion” de miembros heredados
¿Como podemos utilizar los operadores ya definidos en el lenguaje sobre nuestros propios objetos?
Sobrecarga de operadores
¿Puede una clase totalmente independiente de otra, acceder directamente a los miembros privados de esta?
Si, siempre y cuando entre ellas haya una declaración de amistad
¿Con que palabra reservada podemos crear clases genéricas o parametrizables?
template
Si un atributo vemos que tiene el modificador “mutable”, ¿que quiere decir?
que su valor podrá ser modificado incluso aunque el metodo se haya definido como const
Si tenemos un parametro definido como “clase& param”, ¿como se accede a sus miembros?
con param.atributo o param.metodo()
Si tenemos un parametro definido como “clase* param”, ¿como se accede a sus miembros?
con param->atributo o param->metodo()
¿Qué podemos encontrar en la libreria STL?
- Clases contenedoras (stack, set, list, …)
- Algoritmos (sort, find, count, binary_search, …)
- Iteradores
- Funciones (clases que han sobrecargado el operador() )
¿Que dos cosas hacen falta para poder usar el objeto “cout” para generar salida por pantalla?
include <iostream></iostream>
using namespace std;
Si queremos usar excepciones en C++, ¿tenemos que usar alguna clase base como en Java?
No, en C++ cualquier tipo puede ser utilizado en el throw, pero si existe la clase std::exception para ayudarnos a definir nuestra propia jerarquía de excepciones
¿Que dos forma existen para crear un objeto de la clase “persona”?
- Persona p(“pepe”,10)
- Persona* p = new Persona(“juan”,22)
¿Quien se encarga de estandarizar el lenguaje C++?
Su creador fue Bjarne Stroustup, pero ahora está dentro de la norma ISO 14882