Article View: es.comp.lenguajes.c++
Article #16279Re: operador []
From: Rafa Couto
Date: Thu, 02 Jan 1997 00:00
Date: Thu, 02 Jan 1997 00:00
55 lines
1848 bytes
1848 bytes
30 Dec 96 10:00:01 GMT, "Xavi" <xaviv@arrakis.es>:
>La sobrecarga t�pica para el operador [] se utiliza para devolver un
>elemento concreto de una colecci�n almacenada en tu classe, alguien sabe si
>es possible definir-lo para modificar dicho elemento?
>Dicho con un ejemplo seria lo siguiente:
> my_classe[i] = elemento
Devolvi�ndolo por referencia... El caso m�s t�pico se usa para
devolver o asignar caracteres en una clase cadena:
-----
#include <string.h> // strcpy(), strlen()
#include <iostream.h> // cout::
class cadena {
char* caracteres;
public:
cadena (char* cad) {
caracteres = new char [strlen(cad)+1];
strcpy(caracteres, cad); }
~cadena () { delete caracteres; }
char& operator [] (const unsigned i) const {
return(caracteres[i]); } // acceso a los caracteres
operator const char*() const {
return(caracteres); } // cadena equivale a char*
};
// con este m�todo podr�s hacer cosas tan naturales como:
int main () {
cadena MiCadena("Feliz 1996...");
char letra = MiCadena[9];
letra++;
MiCadena[9] = letra;
cout << MiCadena;
};
-----
Saludos, Fw
--
Rafa Couto (Santa Tecla)
<mailto:rcouto@arrakis.es> <http://www.arrakis.es/~rcouto>
snail-mail: P.O. Box 24 // 36780 A Guarda (PO) // Spain
PGP Fingerprint: E6.BF.11.EF.FE.55.38.B1 CF.7E.93.80.58.E5.9F.A3
Technical Details
Message-ID:
<32d0a10d.5616960@nntp.arrakis.es>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<01bbf638$1747bf00$207c4cc3@xavivarrakis>Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: f53ec,db36f7f567684856 X-Google-Attributes: gidf53ec,public From: rcouto@arrakis.es (Rafa Couto) Subject: Re: operador [] Date: 1997/01/02 Message-ID: <32d0a10d.5616960@nntp.arrakis.es> X-Deja-AN: 207335002 references: <01bbf638$1747bf00$207c4cc3@xavivarrakis> content-type: text/plain; charset=ISO-8859-1 organization: SantaTecla mime-version: 1.0 newsgroups: es.comp.lenguajes.c++