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
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
Ora il constructor per i parametri dell'utente nel source l'ho così scritto:
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;
}
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:
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:
codice:
double InterestCalc::geti() const {return i;}
quindi quando faccio myYeld.geti() = myi; posso così accedere alle variabili private sigolarmente.
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