Bonjour,
J'appelle dans operator+ une fonction add qui sera défini dans chacun des class héritant de Space.
Voir le code
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
 
class Space
{
public:
  Space & operator +=(const Space x);
  virtual inline void add(const  Space *x) ;
};
Space & Space::operator +=(const Space x)
{
  this->add(&x);
}
class Space1d:public Space
{
public:
  int i;
  Space1d():i(0){}
  Space1d(int j):i(j) {}
  inline void add( const Space* x)
    {
      this->i = x->i;
    }
};
Le problème à la compilation est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
«const class Space» has no member named «i»
i.e. pour le compilateur l'argument x de add est un oblet de la classe mère Space donc qui n'a pas d'instance int i. Ce que je voudrais savoir c'est comment résoudre ce problème???

Merci,
PS: Je remercie les habitués de ce site pour le sujet d'avant