Tema6_seccion5_CPP Flashcards
(12 cards)
¿Cuándo 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 solución es que las dos clases que tienen una misma base especifique herencia “virtual” para que se puede resolver esa “repetición” de miembros heredados
¿Cómo 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”, ¿Qué quiere decir?
Que su valor podrá ser modificado incluso aunque el método se haya definido como const
Si tenemos un parámetro definido como “clase& param”, ¿Cómo se accede a sus miembros?
Con param.atributo o param.metodo()
Si tenemos un parámetro definido como “clase* param”, ¿Cómo 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() )
¿Qué 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
¿Qué dos forma existen para crear un objeto de la clase “persona”?
- Persona p(“pepe”,10)
- Persona* p = new Persona(“juan”,22)
¿Quién se encarga de estandarizar el lenguaje C++?
Su creador fue Bjarne Stroustup, pero ahora está dentro de la norma ISO 14882