Visualizzazione dei risultati da 1 a 4 su 4

Discussione: [c++]errore

  1. #1

    [c++]errore

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

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    141
    prova a togliere il simbolo =

    quindi

    void operator(char* a,char* b)

  3. #3
    Utente di HTML.it L'avatar di Angioletto
    Registrato dal
    Jan 2004
    Messaggi
    1,246
    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:

    codice:
    #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!!
    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)

  4. #4
    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

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.