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???
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???
prova a togliere il simbolo =
quindi
void operator(char* a,char* b)
Sbaglio, o vuoi ridefinire un operatore che ti permetta di capir se due stringhe sono uguali??void operator =(char* a,char* b)
{for(int i;i<maxs;i++) a[i]=b[i];
return ;};
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:
Come al solito è molto probabile che non abbia scritto qualcosa di molto corretto nel codice, ma l'idea credo sia buona!!codice:#include <string.h> bool operator = (char* a, char* b) { return(!strcmp(a,b) ); }
Notte!!
Per liquidare un popolo si comincia con il privarli della memoria.Si distruggono i loro libri, la loro cultura, la loro storia. E qualcun’ altro scrive loro altri libri, li fornisce di un’altra cultura, inventa per loro un’altra storia. (Milan Kundera)
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