Template

di il
5 risposte

Template

Sto iniziando a studiare i template, eppure non riesco a capire dove è l'errore in questo semplice frammento di codice:
typedef struct S *SL;
template<typename x>
struct S{
        x info;
        SL link;
        };
Qualcuno può aiutarmi, grazie? =) E magari postarmi un buona guida in italiano =)

5 Risposte

  • Re: Template

    Il template e la struct hanno lo stesso nome
  • Re: Template

    ale99 ha scritto:


    il template e la struct hanno lo stesso nome
    Il template si chiama x, la struct S O.O
  • Re: Template

    Ahhhh ok, pensavo tu volessi fare un'altra cosa...

    Con i template non puoi usare il typedef, anche perchè non avrebbe senso!
    piccolo esempio:
    #include <iostream>
    
    using namespace std;
    
    
    template<typename type> struct S {
        type data;
        S* next;
    };
    
    
    
    int main()
    {
        S<int> *s = new S<int>();
        s->data = 10;
        s->next = ( S<int>* ) new S<char>();
        s->next->data = 'a';
        s->next->next = NULL;
    
        cout << s->data << endl;
        cout << s->next->data << endl;
    
        return 0;
    }

    A partire da c++11 puoi usare i "type alias" , che sono ben spiegati qui
  • Re: Template

    Guida sui template ben spiegata e con esempi ( inglese )

    mi dispiace ma quasi tutte le guide e i forum riguardanti la programmazione sono in inglese
  • Re: Template

    Grazie mille per le risposte, ma ho un dubbio, se io creo ad esempio una lista di struct S con argomenti int e string in maniera alternata, come faccio poi a muovermi all'interno della lista con un puntatore? Mi spiego meglio:
    struct S <int> *app;
    app=app->link;
    
    Ma questo nin é possibile in quanto la struttura puntata da app->link era precedentemente stata dichiarata come una struttura di tipo char!
    Come risolvo questo problema?
Devi accedere o registrarti per scrivere nel forum
5 risposte