Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    98

    Template

    Raga, qualcuno sa consigliarmi qualcosa riguardo ai Template?! Sto cercando ma in giro nn ho trovato nulla. Mi servirebbe qualcosa per capire che sono, come funzionano, a che servono....

  2. #2
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Thinking in C++ Vol 2

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    98
    Non c'è niente in italiano o qualcosa che lo spieghi in maniera semplice e con degli esempi? Scusa se sto chiedendo troppo

  4. #4
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    Cosa vuoi sapere di preciso?

    Come dichiarare un template?
    Come gestire un template?
    ecc..

    Chiedi e vediamo..

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    98
    Esatto..vorrei vedere un semplice esempio di uso template e capire perché, come e quando usarlo

  6. #6
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    un template è una classe che al suo interno "contiene" un oggetto non preimpostato ma definito da chi poi creera gli oggetti templetizati.

    es:
    codice:
    template <class K>
    class libro
    {
          K info;
          libro* next;
          libro(K pagina)
         {
            info=pagina;
            next=0; 
         }
    }
    Ecco creata una rudimentale lista di libri che potranno poi essere utilizzati nel seguente modo:
    codice:
    Main()
    {
        libro<int> mioLibro = new Libro<int>(10);
        libro<string> miaAltroLibro = new Libro<string>("ciao");
        cout>>mioLibro.info;
        cout>>mioAltroLibro.info;
    }
    Così potrai utilizzare le funzionalità della classe con più tipi di dati anche personalizzati..

    Altre domande?

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    98
    grazie, sei stato molto gentile...cercherò di trovare un altro po'di esempi così per farci la mano e capire meglio la sintassi

  8. #8
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    lavorare coi template non è facile ricordalo.. persò come strumento è molto potente.. preparati a lunghe lotte col compilatore.. :master:

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    98
    Eh me ne sto acconrgendo...purtoppo ho iniziato a lavorare in un'azienda e, prima di mettermi all'opera, mi hanno consigliato di studiare un po'i Template. Quel poco che ho trovato è in inglese e poiché non ci ho capito molto ho chiesto un aiutino a voi

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    98
    Raga mi date un'occhiata a questo Template? Grazie.

    stack.h
    codice:

    #ifndef _STACK_
    #define _STACK_

    template<class tipo>

    class stack
    {
    int top;
    int size;
    tipo* elements;

    public:

    stack(int n);
    ~stack() {delete[] elements;}
    void push(tipo a);
    tipo pop();
    };

    #endif // _STACK_




    stack.cpp

    codice:

    #include "stack.h"
    #include <iostream.h>

    template<class tipo>

    stack<tipo>::stack(int n)
    {
    size = n;
    elements = new tipo[size];
    top = 0;
    }

    void stack<tipo>:ush(tipo a)
    {
    if (top < size)
    {
    elements[top] = a;
    top++;
    }
    }

    tipo stack<tipo>:op()
    {
    if (!top)
    return (tipo) 0;
    top--;
    return elements[top];
    }

    void display(stack<tipo>& s)
    {
    tipo a;
    while (a = s.pop())
    cout << a << endl;
    }



    main.cpp
    codice:

    #include "stack.h"
    #include <iostream.h>

    void main()
    {
    stack<char> cstack(10);
    stack<double> fstack(20);
    stack<char*> sstack(5);
    cstack.push('a');
    cstack.push('b');
    cstack.push('c');
    display(cstack); // scrive: c b a
    fstack.push(1.23);
    fstack.push(4.56);
    fstack.push(7.89);
    display(fstack); // scrive: 7.89 4.56 1.23
    sstack.push("uno");
    sstack.push("due");
    sstack.push("tre");
    display(sstack); // scrive: tre due uno
    }

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 © 2025 vBulletin Solutions, Inc. All rights reserved.