Di nulla ...
Per sapere cosa sbagliavi perché non esamini le differenze tra i due codici ... e quello che non capisci lo dici ...
Di nulla ...
Per sapere cosa sbagliavi perché non esamini le differenze tra i due codici ... e quello che non capisci lo dici ...
No MP tecnici (non rispondo nemmeno!), usa il forum.
1) perche rendendo le variabili private e dichiarare le funzioni void il programma funge? perche codice non fungeva?
2)un altro dubbio e su internet avevo letto che quando dichiaro varibili private bisogna usare set e get e vero?
3)se in questo caso non uso un costruttore e distruttore cambia qualcosa?
grazie..
Mi sembra che tu vada un po' a caso ... come e perché studi il C++? Hai un libro di riferimento?Originariamente inviato da hugo88
1) perche rendendo le variabili private e dichiarare le funzioni void il programma funge? perche codice non fungeva?
2)un altro dubbio e su internet avevo letto che quando dichiaro varibili private bisogna usare set e get e vero?
3)se in questo caso non uso un costruttore e distruttore cambia qualcosa?
grazie..
No MP tecnici (non rispondo nemmeno!), usa il forum.
private, protected e public regolano l'accesso da fuori: un campo public è liberamente accessibile da fuori, uno private/protected non è accessibile.
A questo proposito vengono introdotti i metodi getter e setter i quali servono ad impostare e a leggere valori private. Così facendo puoi anche fare in modo che un certo campo campo sia sempre impostato secondo le tue regole e seguendo un certo procedimento: controllare tutti i cambiamenti.
Costruttori non hanno nulla a che fare con get/set e, in un certo senso, non puoi fare a meno di usarli (se non li crei vengono creati di default). Come dice il nome servono a creare e distruggere l'oggetto e puoi usarli per inizializzare un oggetto alla sua creazione e compiere alcuni passaggi "standard" prima della distruzione (es: allocare la memoria e rilasciarla).
In ogni caso ti consiglio di aspettare il libro e studiare con quello, altrimenti rischi di apprendere male alcune nozioni che stanno alla base e di avere poi problemi nella scrittura di programmi/perdere tempo a correggere tutto quello che hai imparato male!
![]()
"Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares
grazie mille per la risposta.... aspettero il libro...![]()
comunque una cosa voglio dirtela:
se tu scrivi
significa che questo metodo deve tornare un float, ovvero hai scritto una funzione che non ha parametri in ingresso ma restituisce una variabile di tipo float.codice:float Commercialista::Scritture() { //qualcosa }
In generale è così:
Quindi, dato che i metodi della tua classe (per come li avevi scritti tu!) non avevano output , chi ti ha aiutato li ha dichiarati void, che significa appunto che non restituiscono valori.codice:tipo1 MiaClasse::nome_funzione(tipo2 input) { tipo1 variabile; //dichiari una variabile di tipo1 <- quello che la funzione deve restituire variabile = //... qualcosa, magari usi input per determinarla return variabile; //<- la funzione restituisce variabile, che è appunto di tipo1 (intero, double, stringa, quello che vuoi) }
Con "la funzione restituisce un valore" intendo dire che quando la chiami in un'altra parte del programma, puoi assegnare il suo risultato ad una variabile del tipo restituito.codice:void Commercialista::Scritture() { cout <<"l importo e "<<importo<<endl; cout <<"il cp e "<<cp<<endl; return; // <- questa funzione non restituisce nulla quando viene chiamata }
Per esempio la radice quadrata: sqrt() restituisce float, il suo prototipo sarebbe una cosa del genere
E quando tu la usi puoi scrivere:codice:float sqrt(const float numero);
Ovviamente tutto questo sul libro sarà spiegato egregiamente, ma avendo visto una enorme confusione ho pensato che fosse meglio chiarirla subito. Spero di essere riuscito ad essere chiarocodice:float numero,risultato; risultato = sqrt(numero);//<- chiami la funzione sqrt, le dai in ingresso un float (numero) //e lei ti restituisce un float che è la sua radice quadrata, //che tu assegni alla variabile risultato
grazie sei molto gentile ora ho le idee piu chiare..![]()