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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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?