Raised This Month: $51 Target: $400
 12% 

Sobrecarga de operadores C++


  
 
 
Thread Tools Display Modes
Author Message
rak
Veteran Member
Join Date: Oct 2011
Location: banned country
Old 06-13-2013 , 18:47   Sobrecarga de operadores C++
#1

Buenas, ando leyendo un poco de C++ y entre en la parte de sobrecarga y en el libro que tengo hablaba de sobrecarga de operadores; antes de ver sobrecarga hablaba sobre la herencia que por lo que lei todo bien;

muestro una clase base la cual después salían otras 2 subclases;

PHP Code:
class Array
{
    
// Cantidad de elementos actual del array
    
    
int m_iCantElementos;
    
    
// Puntero a array de numeros enteros
    
    
int m_piArray;
    
public:

    Array(
int iCantidadElementos);
    
    ~Array(
void);
    
    
// Fijar tamaño del array
    
    
bool FijarTam(int iCantidadElementos);
    
    
// Leer el tamaño del array
    
    
int LeerTam() const;
    
    
//Fijar el valor en un elemento determinado del array
    
    
bool FijarValor(int iElementoint iValor);
    
    
// Retorna el valor en un elemento determinado del array
    
    
bool LeerValor(int iElementoint iValor) const;
    
    
// Limpiar el array con el valor pasado como paramentro
    
    
void Limpiar(int iValor);
    
}; 
hasta ahí todo bien, después de que empezamos a ver el tema de sobrecarga de operadores vi algo que me dejo medio en duda; dice que se le puede agregar a la clase anterior esto

PHP Code:
    //....
public:
    
//....

    // Leer un valor del array
    
    
intoperator[](int iElemento);

    
//.... 
la función completa es asi

PHP Code:
int& Array::operator[] (int iElemento)
{
    if(
iElemento >= && iElemento m_iCantElementos)
        return 
m_piArray[iElemento];
    else
        return -
1;
    

y después da este ejemplo

Code:
    // Creo el array con 10 elementos         Array arr(10);         // Fijar el valor 5 en la cuarta posicion         arr.FijarValor(3, 5);    
    // La linea anterior puede ser reescrita por:
   
    arr[3] = 5;
        int iValor;         // Antes leiamos un valor del siguiente modo         arr.LeerValor(3, iValor);         // Ahora lo podemos hacer:         iValor = arr[3]

lo remarcado es lo que me genera duda... la función solo devuelve el valor... pero asignarlo? puede ser que el ejemplo este mal o es algo que no entendí?

Gracias por leer
__________________

www.amxmodx-es.com

Steam: Luchokoldo
rak is offline
Send a message via MSN to rak Send a message via Skype™ to rak
Javivi
AlliedModders Donor
Join Date: Dec 2008
Old 06-24-2013 , 17:58   Re: Sobrecarga de operadores C++
#2

rak, la solución a tu duda está aquí:
int& Array::operator[] (int iElemento)
__________________
Javivi is offline
rak
Veteran Member
Join Date: Oct 2011
Location: banned country
Old 06-29-2013 , 12:23   Re: Sobrecarga de operadores C++
#3

gracias javivi; no lo había notado
__________________

www.amxmodx-es.com

Steam: Luchokoldo
rak is offline
Send a message via MSN to rak Send a message via Skype™ to rak
 



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 11:28.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode