Sobrecarga de operadores binarios
Los operadores binarios se pueden sobrecargar pasando a la función dos argumentos. El primer argumento es el operando izquierdo del operador sobrecargado y el segundo argumento es el operando derecho. Suponiendo dos objetos x e y de una clase c, se define un operador binario + sobrecargado. Entonces x + y se puede interpretar como operator+(x,y) o como x.operator+(y)
Un operador binario puede, por consiguiente, ser definido:
- como un amigo de dos argumentos
- como una función miembro de un argumento (caso más frecuente)
- nunca los dos a la vez
Sobrecarga de un operador binario como función miembro
El siguiente ejemplo muestra cómo sobrecargar un operador binario como una función miembro:
class binario
{
int x;
public:binario() {x=0;}
binario(int a) {x=a;}
binario operator + (binario &);
void visualizar() {cout<<x<<endl;
};
binario binario::operator +(binario &a)
{
binario aux;
aux.x=x+a.x;
return aux;
}
void main()
{
binario primero(2),segundo(4),tercero;
tercero = primero + segundo;
tercero.visualizar();
}
La salida del programas es 6.
Sobrecarga de un operador binario como una función amiga
class binario
{
int x;
public:
binario() {x=0;}
binario(int a) {x=a;}
friend binario operator + (binario &,binario &);
void visualizar() {cout<<x<<endl;
};
binario binario::operator +(binario &a,binario &b)
{ binario aux;
aux.x=a.x+b.x;
return aux; }
void main()
{ binario primero(2),segundo(4),tercero;
tercero = primero + segundo;
tercero.visualizar();
}
La salida del programa será 6.
La función operador binario +() está declarada; debido a que es una función amiga, el sistema no pasa el puntero this implícitamente y, por consiguiente, se debe pasar el objeto binario explícitamente con ambos argumentos. Como consecuencia, el primer argumento de la función miembro se convierte en el operando izquierdo de este operador y el segundo argumento se pasa como operando derecho.
Hay 454 opiniones. Opina sobre este curso.
| Cursos | Valoración | Alumnos | Vídeo | |
|---|---|---|---|---|
|
Funciones en C (primera parte) Curso de programacíon informática sobre Funciones en C en el orden de los fundamentos de la programación. Comprende el desarrollo de un software utilizando funciones y a ... [17/10/08] |
|
2.816 | ||
|
C# Curso de Programación Curso Básico de programación en C#, este curso básico abarcará desde las bases del lenguaje hasta nuestros primeros pasos con aplicaciones web, acceso a bases de datos de... [14/07/05] |
|
8.486 | ||
|
Informática. Desarrollo científico del ordenador Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo científico que hay detrás de una computadora u ordenado... [10/07/09] |
|
4.375 | ||
Publicar en
del.icio.us
digg
meneame