Vector auslesen

Hy @ all,

ich habe eine Klasse welche zwei vektoren enthält, diese sind private. Nun möchte ich von main auf die vektoren m_vdX und m_vdY zugreifen können um ihre werte auslesen zu können. Hier fehlt mir jetzt aber das wissen um eine ordentliche Methode für vektoren zu entwerfen. Wie würde man da prinzipiell vorgehen? Ist mein Ansatz für die Klasse cPolygon überhaupt brauchbar?

cPolygon.h:
http://paste.bradleygill.com/index.php?paste_id=32772

cPolygon.cpp:
http://paste.bradleygill.com/index.php?paste_id=32773

Schon mal danke…
Ben

Hi Ben,

ueber den Sinn oder Unsinn von Settern und Gettern haben sich schon andere Leute den Kopf zerbrochen, das geht von „unbedingt notwendig im Sinne der OO“ bis zu „Ueberhaupt nicht OO“. Das Gleiche gilt im uebrigen in der Diskussion, ob idF m_vdX public sein sollte, anstatt private …

Ich wuerde in der Regel einem Benutzer einer Klasse nicht den vollen Zugriff auf eine Instanzvariable geben, maximal also den „const“ Zugriff und den auch nur mit einem „Getter“:

const vector& getXVector() const
{
 return m\_vdX;
}

Gruss
norsemanna

Hallo

Wie würde man da prinzipiell
vorgehen? Ist mein Ansatz für die Klasse cPolygon überhaupt
brauchbar?
http://paste.bradleygill.com/index.php?paste_id=32772
http://paste.bradleygill.com/index.php?paste_id=32773

Die Klasse sieht ein bisschen aus wie das
Antipattern ‚god class‘ => http://en.wikipedia.org/wiki/God_object

Um etwas zur konkreten Funktionalität sagen zu könnnen,
müsste man einige praktische Dinge wissen - und zwar
zum Beispiel:

  • werden beim konkreten Zugriff im konkreten Problem
      die Dimensionen (x und y) vorwiegend getrennt unabhängig
      berechnet (z.B. bei Splineberechnug) oder werden sie
      vorwiegend als Koordinatenpaare (x,y) aufgefasst?

Viele Grüße

CMb

Hallo,

ok das mit der God Class trifft schon irgendwie zu, ich habe
allerdings auch nicht sehr viel Erfahrung im programmieren, d.h. nie einen
Kurs oder ähnliches besucht (bin eigentlich im Maschinenbau) und von daher
versuch ich mir viele Informationen aus dem Netz zu friemeln. Da sind dann
natürlich gute wie schlechte Ansätze dabei.

X und Y werden als Koordinaten
behandelt, das sind Eckepunkte von Polygonen.
aus diesen werden dann über
diverse Formeln flächenträgheitsmomente und anderes berechnet (siehe
calcPolygon).
Zugreifen muss ich aber auf beide getrennt können.

Die
Berechnungen ansich funktionieren auch alle, ich möchte nur jetzt das
Polygon in einer Windows Forms Oberfläche darstellen und brauche dazu
natürlich die Koordinaten. Durch die Kapselung komme ich da natürlich nur
über eine get-Methode dran.

Wie gesagt wenn es bessere Ideen und Ansätze
gibt bin ich sehr dankbar für Anregungen:smile:

Gruß
Ben

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]