Linguaggio C, this

di il
4 risposte

Linguaggio C, this

Ragazzi cosa significa il seguente codice?

Lista L=this;
???grazie

in particalare la parola this

4 Risposte

  • Re: Linguaggio C, this

    This viene usato in C++, non può essere utilizzato in C perchè il C non è OO.
    this assume l'indirizzo dell'oggetto che viene chiamato. Ad esempio
    s.print, this è uguale a &s.
    Faccio un esempio con una classe:
    class A
    {
    public:
    int print();
    };

    /* instanzio l'oggetto */
    A s;
    s.print(); //all'interno della funzione this è uguale all'indirizzo di s (&s).

    Nel tuo esempio
    List *L=this; //L punta all'indirizzo di this, quindi L deve essere un puntatore. non potrebbe essere List L=this.
  • Re: Linguaggio C, this

    Lista raddoppia (lista L, int val)
    {
    lista this=L, new;
    while (this)
    {
    if (this->val == val)
    {
    new = (lista) malloc(sizeof(nodo));
    if (!new)
    {
    printf("Non c'e' piu' memoria!\n");
    return L;
    }
    new->val = val;
    new->next = this->next;
    this->next = new;
    this = new;
    }
    this = this->next;
    }
    return L;
    }

    cosa significa qui????grazie Antonio
  • Re: Linguaggio C, this

    Stai lavorando in C o C++?
    lista this=l,new;
    lista è una classe o una struttura?
    Nel caso stessi lavorando in C (da quanto vedo nel titolo del post) e allora Lista è una struttura, this viene visto come una semplice variabile, nel tuo caso come una struttura lista. In C this non rappresenta niente. Nel caso stessi lavorando in C++ le cose sono ben diverse quindi il codice che hai postato non avrebbe senso.
  • Re: Linguaggio C, this

    Grazie,gentilissimo!!Risolto.
Devi accedere o registrarti per scrivere nel forum
4 risposte