Sobrecargas (Programacion)

Páginas: 6 (1385 palabras) Publicado: 1 de octubre de 2012
FUNDAMENTOS DE PROGRAMACIÒN

INVESTIGACIÓN
SOBRECARGAS





FELIPE CARRILLO PUERTO QUINTANA ROO MARZO 2012
























En los siguientes conceptos veremos las definiciones de sobre carga y conoceremos mas a cerca de ellos. Nos dice que la sobre carga de operadores se presenta cuando se tiene dos o mas funciones pero con nombre diferentes, estasfunciones realizan trabajos diferentes y se ejecutan en tiempos diferentes, se le llama sobre carga por que precisamente se utiliza la misma función pero con nombre diferente, de allí su nombre “sobre carga”.
También veremos que existen 2 tipos de sobrecarga los “Binarios” y los de “Operación”.
También veremos las sobrecargas de operadores que maneja Java, los cuales son muy pocos ya que java nopermite la sobrecarga de éstos. Sin embargo en C++ si es permitido ya que tiene un distinto tipo de trabajo.














SOBRECARGA
En programación orientada a objetos la sobrecarga se refiere a la posibilidad de tener dos o más funciones con el mismo nombre pero funcionalidad diferente. Es decir, dos o más funciones con el mismo nombre realizan acciones diferentes. El compiladorusará una u otra dependiendo de los parámetros usados. A esto se llama también sobrecarga de funciones.

Sobrecarga es la capacidad de un lenguaje de programación, que permite nombrar con el mismo identificador diferentes variables u operaciones
El mismo método dentro de una clase permite hacer cosas distintas en función de los parámetros
Java no permite al programador implementar sus propiosoperadores sobrecargados, pero sí utilizar los predefinidos como el +. • C++, por el contrario si permite hacerlo.


Tipos de sobrecarga
Sobrecarga de Operadores Binarios
Los operadores binarios son aquellos que requieren dos operandos con lasuma o la resta. El operador incremento (++) es un operador unario.

Cuando se sobrecargan operadores en el interior de una clase:
Se asume que el primeroperando es el propio objeto de la clase donde sedefine el operador. Debido a esto, sólo se necesita especificar un operando.

operator();
Normalmente el es la clase para la que estamos sobrecargando eloperador, tanto en el valor de retorno como en el parámetro.

Además del operador + pueden sobrecargarse prácticamente todos los operadores:
+, -, *, /, %, ^, &, |, (,), , =, , ==, !=, &&,||, =, +=. -=,
*=, /=, %=, ^=, &=,
|=, =, [], (),->, new y delete.
Los operadores =, [], () y -> sólo pueden sobrecargarse en el interior de clases.






Sobrecarga del operador asignación

class Cadena Cadena&Cadena::operator=(const Cadena &c)
{ {
public: if(this != &c)
Cadena(char *cad); {
Cadena() : cadena_(0) {}; delete[] cadena;
~Cadena() { delete[]cadena_; }; if(c.cadena)
void Mostrar() const; {
private: cadena = new char[strlen(c.cadena)+1];
char *cadena_; strcpy(cadena, c.cadena);
}; }
Cadena::Cadena(char *cad) else cadena = NULL;
{ }
cadena_ = new char[strlen(cad)+1]; return *this; // C1 = C2 = C3;
strcpy(cadena_, cad); }
}
void Cadena::Mostrar() const ¿Qué pasa si no loimplementamos?
{ Hay que tener en cuenta la posibilidad de que se
asigne un objeto a si mismo. this
cout>(Tiempo h); // EQUIVALENTES
}; T1 = T1.operator+(Ahora);
Tiempo Tiempo::operator>>(Tiempo h)
{
T1 = Ahora + T1;
if(*this > h) return *this; else return h;
}
T1 = Ahora >>Tiempo(13,43) >> T1 >> Tiempo(12,32);


Clases con punteros
Cuando nuestras clases tienen punteros con memoria dinámicaasociada, la
sobrecarga de funciones y operadores puede complicarse un poco.
class Cadena
{...
Cadena operator+(const Cadena &);
};
Cadena Cadena::operator+(const Cadena &c)
{
Cadena temp;
temp.cadena = new char[strlen(c.cadena)+strlen(cadena)+1];
strcpy(temp.cadena, cadena);
strcat(temp.cadena, c.cadena);
returntemp;
}
Cadena C1, C2("Primera parte");
C1 = C2 + " Segunda...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • sobrecargo
  • Sobrecargos
  • sobrecargo
  • Sobrecarga
  • Sobrecarga de operadores
  • Operadores Sobrecargados
  • Sobrecarga De Operadores
  • Sobrecarga Laboral

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS