attribut référence sur un vector
Salut,
j'ai un gros problème avec les "vector" que je n'arrive pas à resoudre:
pour simplifier, il y a une classe "Processus" qui contient un attribut membre de type réference sur vector de double.
la classe "ProcessusBSS" derive de "Processus".
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
using namespace std;
class Processus
{
private:
vector<double> m_Paramdef;
protected:
double m_h;
vector<double> & m_Param;
public:
virtual double getIncrement(double Current_Pos,double Alea){return 0;};
virtual vector<double> getSample(double Starting_Pos, vector<double> Alea, long NbrePas){ vector<double> res(0); return res;};
Processus(double h, vector<double> & Param);
virtual ~Processus();
Processus(Processus & p);
Processus();
double get_h(){return m_h;};
void set_h(double h){m_h=h;};
}; |
et dans le .cpp:
Code:
1 2 3 4 5 6 7 8
|
Processus::Processus(double h, vector<double> & Param)
: m_h(h)
, m_Param(Param)
{}
Processus::Processus(Processus & p) :
m_h(p.m_h)
, m_Param(p.m_Param) {} |
et dans le .cpp d'une autre classe "Produit" je fais appel au constructeur:
Code:
1 2 3 4 5 6 7 8 9 10 11
|
Produit(...) : m_S0(S0){
vector<double> parami(5);
// je rempli le vecteur avec des valeurs comme suit:
parami[0]=...;
parami[1]=...;
parami[2]=...;
parami[3]=...;
parami[4]=...;
m_PS=ProcessusBSS(0.004,paramii);// ERREUR
... |
Le compilateur me renvoi l'erreur suivante:
error:non-static reference member `std::vector<double, std::allocator<double> >&Processus::m_Param' can't use default assignement operator
j'ai tout essayé sans résultat.
Je bloque dessus depuis deux jours .
est ce que quelqu'un pourrait m'aider à comprendre d'où vient mon erreur?