Anfängerproblem: Auf Membervariable aus externer Klasse zugreifen.
-
Hallo,
ich habe ein kleines Problem mit dem Zugriff auf eine Membervariable einer externen Klasse.
Hier mal eine Skizze meines Vorhabens:
class MyClass { public: float MyFunc(int) {}; private: float MyVec[4096]; }; float MyClass::MyFunc(int i){ return MyVec[i]; } int main() { int index=7; float Val = MyClass::MyFunc(index); }Ich möchte in main() auf die Werte von MyVec aus MyClass zugreifen, erhalte aber in obiger Weise Compilerfehler C2352. Wenn ich vor MyFunc static schreibe, ist dieser Fehler zwar weg, aber es kommt Compilerfehler C2597. Da komme ich dann erstmal nicht weiter. Scheint irgendwie verboten zu sein, was ich da vorhabe.
Hat jemand ne Idee, was das Problem ist?Viele Grüße
Zhar
-
Da ist ein bissl was zuviel .... und zwar die geschweiften Klammern in deiner Klasse für MyFunc. Schließlich definierst du sie ja auch schon außerhalb deiner Klasse.
Weiterhin ist MyFunc nicht statisch und somit kannst du auch nicht über den Scopeoperator (siehe in main) auf MyFunc zugreifen.
Bilde erst eine Instanz und greife dann über diese drauf zu.class MyClass { public: float MyFunc(int); private: float MyVec[4096]; }; float MyClass::MyFunc(int i) { return MyVec[i]; } int main() { int index=7; MyClass foo; float Val = foo.MyFunc(index); }(vergiss nicht MyVec zu initialisieren
)
-
Hey,
danke für die schnelle Antwort.

Mir fiel das auch eben auf, was du schreibst. Die geschweiften Klammer sind ein Tippfehler, aber die Initialisierung hatte ich völlig vergessen.Gute Nacht
Zhar :xmas1: