Trabajo Final de Efren

33
Sobrecarga de operadores La palabra clave operator declara una función especificando el significado de operator-symbol cuando se aplica a las instancias de una clase. Esto proporciona al operador más de un significado, o lo "sobrecarga". El compilador distingue entre los diferentes significados de un operador examinando los tipos de sus operandos. type operator operator-symbol ( parameter-list ) Se puede redefinir la función de la mayoría de los operadores integrados de forma global o clase a clase. Los operadores sobrecargados se implementan como funciones. El nombre de un operador sobrecargado es operatorx, donde x es el operador tal como aparece en la tabla siguiente. Por ejemplo, para sobrecargar el operador de suma, se define una función denominada operator+. Del mismo modo, para sobrecarga el operador de suma y asignación, +=, se define una función denominada operator+=. Operadores redefinibles operador Nombre Tipo , Coma Binary ! NOT lógico Unario != Desigualdad Binary

description

prueva

Transcript of Trabajo Final de Efren

Sobrecarga de operadoresLa palabra claveoperatordeclara una funcin especificando el significado deoperator-symbolcuando se aplica a las instancias de una clase.Esto proporciona al operador ms de un significado, o lo "sobrecarga".El compilador distingue entre los diferentes significados de un operador examinando los tipos de sus operandos.type operator operator-symbol ( parameter-list )Se puede redefinir la funcin de la mayora de los operadores integrados de forma global o clase a clase.Los operadores sobrecargados se implementan como funciones.El nombre de un operador sobrecargado esoperatorx, dondexes el operador tal como aparece en la tabla siguiente.Por ejemplo, para sobrecargar el operador de suma, se define una funcin denominadaoperator+.Del mismo modo, para sobrecarga el operador de suma y asignacin,+=, se define una funcin denominadaoperator+=.Operadores redefiniblesoperadorNombreTipo

,ComaBinary

!NOT lgicoUnario

!=DesigualdadBinary

%MduloBinary

%=Asignacin y mduloBinary

&AND bit a bitBinary

&Direccin deUnario

&&AND lgicoBinary

&=Asignacin AND bit a bitBinary

( )Llamada a funcin

( )Operador de conversinUnario

*MultiplicacinBinary

*Desreferencia de punteroUnario

*=Asignacin y multiplicacinBinary

+AdicinBinary

+Unario msUnario

++Incremento1Unario

+=Asignacin y sumaBinary

RestaBinary

Negacin unariaUnario

Decremento1Unario

=Asignacin y restaBinary

>Seleccin de miembroBinary

>*Seleccin de puntero a miembroBinary

/DivisinBinary

/=Asignacin y divisinBinary

=Asignacin y desplazamiento a la derechaBinary

[ ]Subndice de matriz

^OR exclusivoBinary

^=Asignacin y OR exclusivoBinary

|OR inclusivo bit a bitBinary

|=Asignacin y OR inclusivo bit a bitBinary

||OR lgicoBinary

~Complemento a unoUnario

deleteDelete

newNew

conversion operatorsoperadores de conversinUnario

1Existen dos versiones de los operadores de incremento y decremento unarios: preincremento y posincremento.

Reglas generales para la sobrecarga de operadoresLas reglas siguientes restringen la forma en que se implementan los operadores sobrecargados.Sin embargo, no se aplican a los operadoresnewydelete, que se tratan por separado. No se pueden definir operadores nuevos, por ejemplo **. No se puede volver a definir el significado de los operadores cuando se aplican a los tipos de datos integrados. Los operadores sobrecargados deben ser una funcin miembro de clase no esttica o una funcin global.Una funcin global que necesita acceso a miembros de clase privados o protegidos se debe declarar como friend de esa clase.Una funcin global debe tomar al menos un argumento que sea de clase o de tipo enumerado, o que sea una referencia a una clase o a un tipo enumerado.Por ejemplo:

1) // rules_for_operator_overloading.cpp2) class Point3) {4) public:5) Point operator