Zugriff auf Klassen und ihre Attribute
-
Hallo,
ich habe ein wahrscheinlich einfaches Problem, welches ich nicht sofort gelöst bekomme.
Ich habe die Klasse:
class Position { public: Position(void); ~Position(void); int x; int y; };Dann lege ich in einer anderen Klasse ein Objekt an:
Position pos; pos.x = point.x;Und darauf will ich in einer weiteren unabhängigen Klasse zugreifen mit:
int wert; wert = Position::pos.x;Und hierbei erscheint als Meldung, dass pos kein Member der Klasse Position ist. Was ist der Fehler?
-
das ist auch richtig so, denn pos ist ja kein Member von Position sondern nur x oder y.
Abgesehen davon greift man nicht über den Klassennamen, sondern über die Instanz der Klasse auf die Member zu.
Du schreibst ja, dass Du Position in einer weiteren Klasse nutzt - ich nenne sie mal Klasse CPosUser
Du hast also irgendwie die Formclass CPosUser { public: Position m_Pos; ... }Wenn Du dann also in einer weiteren (unabhängigen) Klasse diese Klasse CPosUser benutzt, hast Du dort eine Member von CPosUser oder eine lokale Instanz von CPosUser angelegt
CPosUser pu;Du musst Dich dann "durchpunkten" (über die Membervariablen)
// pu - CPosUser enthält Member m_Pos - CPosition enthält Member x pu.m_Pos.x