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 |
|