Non mi è molto chiaro come opera il costruttore dei parametri inseriti dall'utente nella seguente classe che sto scrivendo (sto utilizzando uno schema di un libro, ma faccio fatica a capirne il significato):
questo è l'header
Ora il constructor per i parametri dell'utente nel source l'ho così scritto:codice:#ifndef _INTEREST_H #define _INTEREST_H class InterestCalc{ private: void init(); void copy(); double i; //tasso d'interesse double C; //capitale int t, T; //durata o.f, interest freq. double M; //montante public: //constructors & destructor InterestCalc(); //default constructor InterestCalc(const double& _i, const double& _C, const int& _t, const int& _T, const double _M); //parameter constructor InterestCalc(const InterestCacl& rhs);//copy constructor InterestCacl& operator = (const InterestCalc& rhs);//assignment virtual ~InterestCalc();//virtual destructor //getters, selector methods for our parameters double geti() const; double getC() const; int gett() const; int getT() const; double getM() const; //calculation methods double simple_calc() const; double compound_calc() const; } #endif
mi sfugge come usare al meglio una classe così scritta. Cioè mi sfugge il ruolo di init() e quello del parameter constructor. Da quel che ho capito:codice:InterestCalc::InterestCalc(const double& _i, const double& _C, const int& _t, const int& _T, const double _M) { i = _i; C = _C; t = _t; T = _T; M = _M; }
Se dichiaro: InterestCalc myYeld; la init inizializza le variabili private con i valori dati in init() giusto?
Se dichiaro: InterestCalc myYeld(a,b,c,d,e); il param. constructor passa tali valori alle variabili private?
Se così fosse il problema che mi si pone è questo, se io non ho tutte le variabili a priori ma voglio che le inserisca l'utente, come faccio? devo storarle su delle altre variabili e poi una volta che le ho tutte richiamare il costruttore (e qui perderebbe molto di senso avere quel costruttore, se le inserisco una a una tanto vale che le assegni quando le inserisco...tranne per il fatto da correggere che sono private), o c'è un'altro modo che mi sfugge?
P.S. mi viene in mente che i getters stanno lì forse proprio per questo:
quindi quando faccio myYeld.geti() = myi; posso così accedere alle variabili private sigolarmente.codice:double InterestCalc::geti() const {return i;}
se così fosse la mia domanda potrebbe diventare: allora a cosa serve avere il param. contructor e il getter? fanno si che io possa inserire tutte le var in una volta o accedere una ad una?
Grazie

 
			
			 
					
					
					
						 Rispondi quotando
  Rispondi quotando ), melgio rivedere tutto per bene. In ogni caso il quesito rimane valido in termini generali, ciao ciao
), melgio rivedere tutto per bene. In ogni caso il quesito rimane valido in termini generali, ciao ciao
						