View Full Version : [c++] - creare procedura per diversi tipi
Granzy94
01-12-2011, 14:33
ho una classe dove ho una procedura ricerca fatta con i puntatori io vorrei implemetare questa procedura in modo che funzioni con qualsisi tipo di variabile!
l'unico problema è vorrei anche che se il tipo di variabile è uno struct o una classe mi permettesse di fare una ricerca di un campo specifico dello struct o della classe!
come posso fare? cosa devo passare alla procedura?
dai un'occhiata ai generics
Granzy94
01-12-2011, 14:54
mi potresti spiegare brevemente tu cosa sono?
se può essere utile conosco già i template se è una cosa simile puoi partire da lì!
mi potresti spiegare brevemente tu cosa sono?
se può essere utile conosco già i template se è una cosa simile puoi partire da lì!
I generics sono i template in Java...credo siano la stessa cosa e che !fazz intenda i template. Se vuoi usare la procedura con qualsiasi tipo di variabile primitiva utilizza i template (potrei anche sbagliarmi...è da un pò che non mi aggiorno sul C++). Se vuoi estenderla alle classi allora credo tu debba usare ereditarietà e metodi virtuali.
I template funzionano sia con le funzioni normali che con le classi.
Granzy94
02-12-2011, 15:49
I template funzionano sia con le funzioni normali che con le classi.
lo so questo ma io vorrei fare una procedura che funzionasse anche con i record (con più campi) ma eseguire la ricerca su un solo campo del record!
lo so questo ma io vorrei fare una procedura che funzionasse anche con i record (con più campi) ma eseguire la ricerca su un solo campo del record!
Se e' solo il solito campo che ti serve specializzi il template e nella specializzazione fai il confronto del campo.
Se vuoi una cosa piu' generica (vuoi poter fare la ricerca su un campo arbitrario devi poter specificare nella chiamata) o implementi diverse chiamate di ricerca (magari con nomi diversi), oppure devi passare la funzione di confronto come argomento, o come parametro template aggiuntivo.
Ci sono vari modi, dipende da che devi fare, e se stato parecchio vago.
Riesci a darci piu' dettagli ?
Granzy94
03-12-2011, 14:31
allora provo a spigarmi meglio!
intanto la classe su cui implemento la ricerca è la classe lista fatta con i puntatori e il template!
io vorrei fare in modo che dal main di un qualsiasi programma dopo aver creato l'istanza della classe lista si può chiamare la ricerca così:
struct prodotto
{
int numero;
int prezzo;
};
int main()
{
lista<prodotto> miaLista;
int x;
//faccio finta di aver inserito dei valori nella lista
//e ora richiamo il metodo ricerca su un campo specificandone il numero
x=miaLista.Ricerca(valoreElemento, numeroCampo);
}
il mio problema è che nella classe io non posso sapere il numero di campi del record inizializzato nel main e tanto meno il nome dei campi quindi come posso eseguire una ricerca su un campo specifico del record????
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.