Fehler: Irgendwas not available in this scope
-
Hallo,
ich habe mein Projekt in mehrere Teile aufgeteilt.
Dabei gibt es eine Startfunktion, eine Überklasse und eine Unterklasse (vereinfacht gesagt).#include Überklasse.h #include Unterklasse.h //Start.cpp OnInit() { Überklasse* über = new Überklasse(); }//Überklasse.h class Überklasse { public: int DerEntscheidendeWert Überklasse(){DerEntscheidendeWert = 10;} }//Unterklasse.h class Unterklasse { public: int HierSollDerWertHin Unterklasse(){HierSollDerWertHin= über->DerEntscheidendeWert;} //im echten Quelltext mit Settern und Gettern, daher dies nur exemplarisch }An der Stelle, bei der der Konstruktor auf ein Objekt zugreifen möchte, was er im Moment des kompilierens anscheinend noch nicht kennt, gibt der Compiler einen Fehler aus.
Kann mir jemand helfen?
Beste Grüße
}[/cpp]
-
Das ist kein C++. Da fehlen (neben den Einrückungen!) Semikola, „Ü“ in Bezeichnern ist nicht erlaubt und die #include-Syntax erfordert Anführungszeichen. Daher kann ich nur raten. Ich denke mal, in der Unterklasse-Datei fehlt ein "include Überklasse.h" – aber dann verletzt Du die ODR. Verwende include guards, um dieses Problem zu umgehen.
-
Das Problem dürfte vor allem sein, daß "über" eine lokale Variable der Funktion OnInit ist - und damit außerhalb der Funktion überhaupt nicht bekannt ist. (außerdem hast du nirgends ein Unterklasse-Objekt angelegt, also wird dessen Ctor auch nirgends verwendet)
Was hast du mit dieser Konstruktion eigentlich beabsichtigt?
-
Davon abgesehen das Unterklasse keine Unterklasse ist, da dort nichts vererbt wird.
