![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
alguna idea?
![]()
__________________
http://www.qdsSoftware.com |
|
#2
|
||||
|
||||
|
Pues a ver, de esto no sé gran cosa, pero de entrada, el operador debería regresar una entrada del arreglo y no todo el arreglo ¿no? Tampoco entiendo el uso de los apuntadores, ¿por qué no devuelves directamente la entrada?
Prueba así: Código:
class miClase
{
private:
int a[2];
public:
miClase()
{
a[0] = 1;
a[1] = 2;
}
int operator[] (int pos){ return a[pos]; }
};
int main(int argc, char *argv[])
{
miClase * z = new miClase();
int b = (*z)[1];
}
|
|
#3
|
||||
|
||||
|
El error es que estás aplicando el operador [] a un puntero no a un objeto de la clase. Cuando se aplica a un puntero funciona como un índice.
Fíjate en esta implementación: Código:
class miClase
{
private:
int a[2];
public:
miClase() { a[0] = 1; a[1] = 2;}
int& operator[] (int i){ return a[i]; }
};
void main()
{
miClase z; // esto en C++ es perfectamente válido y muy útil.
int b = z[1];
}
Código:
void main()
{
miClase *z = new miClase;
int b = (*z)[1]; // Aplicamos el operador [] a un objeto no a un puntero.
}
Saludos. |
|
#4
|
|||
|
|||
|
efectivamente ese era el problema
muchas gracias
__________________
http://www.qdsSoftware.com |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Pasar mi clase a una clase de 3 capas o lo mas parecido | elarys | OOP | 2 | 07-04-2011 23:02:54 |
| clase que contiene otra clase definida de forma posterior | astwin | OOP | 5 | 20-02-2009 11:26:55 |
| Duda sobre creación de clase (Free y Destroy) | adlfv | OOP | 3 | 09-10-2005 06:11:16 |
| Duda sobre operadores | Luis M. | Varios | 2 | 28-03-2005 19:21:22 |
| sobrecarga de operadores | zuriel_zrf | Varios | 1 | 11-09-2003 13:08:36 |
|