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
), melgio rivedere tutto per bene. In ogni caso il quesito rimane valido in termini generali, ciao ciao
