[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [OT]: dubbi c++



brunetto wrote:
ma non riusciamo a districarci con classi template e classi
astratte.. riuscite a consigliarci qualcosa?

mi chiedevo cosa sono le classi astratte, poi cercando ho trovato:
http://it.wikipedia.org/wiki/Classe_astratta#C.2B.2B

non sono altro che classi con almeno una funzione pure virtual.

Ma il C++ è un linguaggio davvero potente, io ci avevo giocato un bel po' riuscendo a fare cose interessanti.

Le classi template ti permettono di crearti una classe il cui tipo viene deciso dall'utilizzatore. In pratica crei una classe che va bene per tutti (o quasi tutti) i tipi di dati e poi è l'utente che durante l'istanziazione di un oggetto di quella classe che definisce il tipo di dato (o i tipi di dati) usati da quell'oggetto che è stato messo nella dichiarazione template.

Invece le funzioni pure virtual sono usate quando crei una classe e obblighi tutti quelli che derivano da essa ad implementare quella funzione pure virtual usando la definizione della classe padre. Nella classe padre le funzioni pure virtual non sono implementate, ma solo definite.

In particolare dobbiamo creare un puntatore ad un oggetto che deve
rimanere generico finché una catena di "if" ed "else if" non ne
determina la natura. Non siamo sicuri che sia giusto utilizzare una
classe template, e comunque non ne capiamo la sintassi.

detto così è troppo generico.
Però quello richiesto, secondo me, è l'uso di un puntatore a void o al massimo ad una union se la genericità è dichiarata.

Questo perché per una classe templete i tipi dei dati template sono definiti al momento dell'uso della classe.

Il secondo dubbio riguarda le classi astratte.. ne viene richiesto
l'utilizzo, ma non ne vediamo il senso..

una classe con funzione pure virtual è una classe generica che viene fatta non per l'uso diretto, ma per permettere di derivare più classi differenti da essa fornendo ad ognuna un elenco di funzionalità generiche già implementate

Come libri io mi ero preso il libro di Bjarne Sroustrup (l'autore del C++), anche se quello che ho io è del 1990, devo dire che il libro è complesso perché è più un manuale d'uso, ma contiene tutte le informazioni necessarie. Su questo del 1990 non ci sono template e forse neanche le funzioni pure virtual perché sono state definite successivamente.

Comunque su internet penso che si possa trovare facilmente di tutto, per esempio su questo sito:
http://www.cplusplus.com

Ciao
Davide

--
Dizionari: http://linguistico.sourceforge.net/wiki
Sistema operativo: http://www.it.debian.org
GNU/Linux User: 302090: http://counter.li.org
Non autorizzo la memorizzazione del mio indirizzo su outlook


Reply to: