PDA

Visualizza la versione completa : [c++]errore


aeroplanino
17-02-2004, 16:21
code:

void operator =(char* a,char* b)
{for(int i;i<maxs;i++) a[i]=b[i];
return ;};


alla compilazione mi da questo errore:

`operator =(char *, char *)' must be a nonstatic member function


cosa devo fare???

baru
19-02-2004, 16:59
prova a togliere il simbolo =

quindi

void operator(char* a,char* b)

Angioletto
19-02-2004, 23:32
void operator =(char* a,char* b)
{for(int i;i<maxs;i++) a[i]=b[i];
return ;};

Sbaglio, o vuoi ridefinire un operatore che ti permetta di capir se due stringhe sono uguali??

La sintassi mi sembra fatta bene, ma non mi chiaro il codice..

Sai gi che le due stringhe hanno la stessa lunghezza?? (maxs)

Inoltre a[i]=b[i] una assegnazione, non un confronto : copi b in a (ti conviene usare strcat)

Per il confronto tra due stringhe esiste la funzione " strcmp(a,b) (appartenente alla libreria string.h),ti restituisce falso se le due stringhe sono uguali..quindi penso che potresti scrivere:


#include <string.h>

bool operator = (char* a, char* b) {
return(!strcmp(a,b) );
}



Come al solito molto probabile che non abbia scritto qualcosa di molto corretto nel codice, ma l'idea credo sia buona!!

Notte!!

aeroplanino
20-02-2004, 11:58
infatti volevo definire l'assegnamento tra due stringhe non il confronto,comunque ho risolto.

prima non conoscevo l'esistenza della libreria string,grazie a stringcpy(a,b) risolvo tutto

Loading