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 41
   |  
class Space
{
public:
  friend std::ostream& operator << (std::ostream& O, const Space& B);
   Space & operator +=(const Space x);
 
  virtual void Print(std::ostream& O) const
    {
      cout << "toto";
    }
};
 
Space & Space::operator +=(const Space x)
{
  return *this;
}
std::ostream& operator << (std::ostream& O, const Space& B)
{
    B.Print(O);
    return O;
}
 
class Space2d:public Space
{
public:
  int i[2];
  Space2d()
    {i[0]=0;i[1]=0;}
  Space2d(int i0,int i1){i[0]=i0;i[1]=i1;}
 
   void Print(std::ostream& O) const
    {
     cout << i[0]<<"  "<<i[1]<<endl;
    }
  Space2d & operator +=(const Space2d x)
    {
      i[0]+=x.i[0];
      i[1]+=x.i[1];
    }
}; | 
Partager