Klasy. Początkojący

0

Jestem początkujący w C++ i mam kłopot z błędem, który tworzy poniższy kod.
Jak to powinno być i dlaczego nie działa ? Proszę o pomoc.

class punkt{
   private:
      double x, y;
   public:
      punkt(double, double);
};

punkt::punkt(double a, double b){ x = a;  y = b; }

class odcinek{
   private:
      punkt p1, p2;
   public:
      odcinek(punkt, punkt);
};

odcinek::odcinek(punkt a, punkt b){
   p1 = punkt(a.x, a.y);
   p2 = punkt(b.x, b.y);
}
0

Nie możesz się odwoływać do zmiennych prywatnych spoza klasy.

0
class punkt{
   private:
      double x, y;
   public:
      punkt(double a, double b):x(a),y(b){}
      int getX(){
        return x;
      }
      int getY(){
        return y;
      }
};
class odcinek{
   private:
      punkt p1,p2;
   public:
      odcinek(punkt a, punkt b):p1(a.getX(),a.getY()),p2(b.getX(),b.getY()) {}
};

http://pl.wikipedia.org/wiki/Lista_inicjalizacyjna_konstruktora
P.S seterów i geterów nie wywalaj poza klasę. Krótkie funkcje zostają, a te dłuższe wywala się do pliku cpp.

1
kopernik napisał(a)

P.S seterów i geterów nie wywalaj poza klasę. Krótkie funkcje zostają, a te dłuższe wywala się do pliku cpp.
jak już dajemy rady odnośnie elegancji zapisu to "getery" powinny być const.

1 użytkowników online, w tym zalogowanych: 0, gości: 1