2013-06-17 3 views
-2

Je crée ma propre classe String en C++. Je à ce moment empilé:L'opérateur [] me montre l'erreur 'unaire *'

class String{ 
    char* arr; 
    int len; 

    String& operator[](int); 
} 

String& String::operator[](int n) { 
len = 1; 
arr = new char[1]; 
arr = *arr[n]; 
} 

Le compilateur me montre ceci:

In member function ‘String& String::operator’: error: invalid type argument of ‘unary *’

Où est le bug? Merci pour votre aide! :)

+0

En fonction membre 'opérateur 'String & String :: [] (int)'': Erreur: argument de type non valide de unaire ''*'' (ont ''char'') http: // coliru. stacked-crooked.com/view?id=b628d5e7dbc608b9d3c638d6dbe46907-f674c1a6d04c632b71a62362c0ccfc51 –

+5

avez-vous un livre sur C++ où vous pouvez réellement étudier ce genre de choses à partir de la base? Cela n'a vraiment aucun sens :( –

+2

qu'attendez-vous 'arr = * arr [n];?' Faire – greatwolf

Répondre

1

Je suppose que cela devrait être comme ceci, demandez à nouveau si elle ne peut toujours pas compiler.

class String{ 
    char* arr; 
    int len; 

    char operator[](int); 
}; 

char String::operator[](int n) { 
    //if (n >= len) throw; 
    //if (arr = NULL) throw; 
    return arr[n]; 
} 
Questions connexes