En mi tarea, tengo que diseñar un mensaje de clase; entre otros atributos, tiene atributo "prioridad" (el objetivo principal es implementar cola de prioridad).Sobrecarga tanto del operador <como del operador> en la misma clase
Como en el contenedor, debo verificar si un objeto es mayor que el otro, he sobrecargado el operador '>'. Ahora, tengo un par de preguntas generales al respecto ...
Pregunta uno:
Si sobrecargo operador '>', en caso de que la sobrecarga del operador < 'de argumentos (Mensaje const &, & mensaje const)?
Mi opinión es que la sobrecarga tanto> y < y su uso en el código generará un error:
if(message1 > message2)
{ ... }
(que hace el código siguiente llama operador> para el objeto de mensaje 1, o el operador < Message2 objeto?)
Pero, ¿y si yo uso el operador de esta manera:
if(message1 < message2)
{ ... }
?
operador> está declarada como amigo función:
friend bool operator>(const Message& m1, const Message& m2)
¿Tiene que ser declarado como función miembro?
Gracias.
Gracias, leí en alguna parte que si sobrecargaba una operación de relación, parece racional sobrecargar todas ellas. –
Y gracias por la respuesta de un amigo/miembro. Veo a que te refieres :). –
Esta respuesta también debe señalar que la mayoría de los operadores relacionales se pueden describir en términos de un puñado de operadores, generalmente '<' y '=='.Por ejemplo, 'operator> =' se puede escribir: 'bool operator> = (const T & l, const T & r) {return! (L
greyfade