Boujours,
Je créer une sucession de classe qui éritent en cascaet j'aimerais redéfinir le type de retour de operator++ (int). Maleureusement je ne peut pas utiliser les retour covarian car je doit renvoiller une copie de this avent que les actions de ++ soit éfectuer. Je voudrais savoir si il y a une solution avec les cast.

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
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
 
class A
{
      virtual inline Point & operator-- ();
      virtual inline Point operator-- (int);
}
class B : public A
{
      virtual inline Point & operator-- ();
      virtual inline Point operator-- (int);
}
class C : public B
{
      virtual inline Point & operator-- ();
      virtual inline Point operator-- (int);
}
 
inline A & A::operator++ ()
{
  x++;
  return *this;
}
inline A A::operator++ (int)
{
  Point ans = *this;
  ++(*this);
  return ans;
}
 
inline B & B::operator++ ()
{
  x++;
  return *this;
}
inline B B::operator++ (int)
{
  Point ans = *this;
  ++(*this);
  return ans;
}