Pregunta 1 · Metodologia de la Programació UAB 2018
Tema: Disseny de classes: declaració, const i sobrecàrrega d'operadors · Del examen Examen Primer Parcial Curs 2018-2019 (2018)
Enunciado
Context
Aquest examen avalua els conceptes de disseny orientat a objectes en C++ mitjançant la creació i gestió d'una lliga de fins a 20 superherois. Es parteix de la declaració bàsica de la classe SuperHeroi:
class SuperHeroi
{
public:
SuperHeroi();
void setNom(string nom) { m_nom = nom; }
void setVelocitat(int velocitat) { m_velocitat = velocitat; }
void setPoder(const string& poder) { m_poder = poder; }
void setVida(int vida) { m_vides = vida; }
void setForca(int forca) { m_forca = forca; }
string getNom() const { return m_nom; }
int getVelocitat() const { return m_velocitat; }
int getVides() const { return m_vides; }
string getPoder() const { return m_poder; }
int getForca() const { return m_forca; }
private:
string m_nom;
int m_velocitat;
string m_poder;
int m_vides;
int m_forca;
};
Pregunta 1 (1 punt). Sobrecàrrega de l'operador > a la classe SuperHeroi
Incorporeu a la classe SuperHeroi la sobrecàrrega de l'operador de comparació major que ( >). El criteri d'ordre establert és el següent:
Primer es compara per la força.
Si tenen la mateixa força, es desempata per la velocitat.
Si la velocitat també coincideix, es compara pel nombre de vides.
Aquest operador s'haurà d'utilitzar en els exercicis posteriors sempre que calgui determinar quin superheroi precedeix o supera un altre.

Solución
Según los criterios oficiales de corrección
Incorporeu a la classe SuperHeroi la sobrecàrrega de l'operador de comparació major que ( > ).
Solución: ```cpp bool SuperHeroi::operator>(const SuperHeroi& altre) const { if (m_forca != altre.m_forca) return m_forca > altre.m_forca; if (m_velocitat != altre.m_velocitat) return m_velocitat > altre.m_velocitat; return m_vides > altre.m_vides; } ```
La explicación paso a paso, hecha con IA, es Premium. Premium
Resuélvelo aquí mismo: corrección automática, pistas y solución paso a paso.
‹ Exercici 2 · 2024 · Pregunta 2 · 2018 ›