Objekte global deklarieren



  • Hi,

    also ich habe zwei Dateien (main.cpp, ui_untitled.h). in der main() deklariere ich Objekte mit denen ich die Funktionen von ui_untitled.h benutzen kann. diese objekte sind aber nur in der main() vorhanden (logisch) wie kann ich die aber in einer anderen Funktion in der main.cpp benutzen.

    verstanden was ich meine?



  • Nein, und ich weiß auch nicht was das mit Vererbung zu tun hat...



  • ich probier es mal anders zu sagen. wie deklariere ich ein objekt global, welches in der main() initialisiert wird? wie ich auf vererbung gekommen bin weiß ich auch nicht. ich war grad mit den gedanken ganz wo anders als ich das geschrieben habe.



  • Hi!

    Für Globale Objekte kannst du extern nutzen, oder aber ein Singleton Pattern.

    grüße



  • KingV1k schrieb:

    ich probier es mal anders zu sagen. wie deklariere ich ein objekt global, welches in der main() initialisiert wird?

    Kommt ganz darauf an, was du unter global verstehst. Ein Objekt mit globaler Sichtbarkeit kann in main nicht initialisiert werden, da zu dem Zeitpunkt, wenn main aufgerufen wird, diese Objekte bereits initialisiert wurden. Wenn du von globaler Lebensdauer sprichst, dann macht man das mit static.

    int main()
    {
        static foo blubb = /* Initialisierung */;
    }
    

    Diese Variable ist aber auch nur in main sichtbar.
    Wenn ich dich richtig verstanden habe, dann wird dir beides nicht weiterhelfen.

    Grundsätzlich kannst du das Problem wie folgt lösen:
    1. Du spendierst deinen Funktionen entsprechende Parameter und schleifst die Objekte dann durch. (empfehlenswert)
    2. Du definierst deine Objekte mit globaler Sichtbarkeit und belässt sie un- bzw. default-initialisiert. In main werden diese Objekte in einen gültigen Zustand versetzt, damit sie in den Funktionen benutzt werden können. Du solltest sicherstellen, dass die Objekte auch erst dann verwendet werden, wenn sie einen gültigen Zustand haben. (bedingt empfehlenswert)

    KingV1k schrieb:

    wie ich auf vererbung gekommen bin weiß ich auch nicht. ich war grad mit den gedanken ganz wo anders als ich das geschrieben habe.

    Dann ändere bitte den Threadtitel, sonst gibt's noch mehr Verwirrung.



  • es gibt hier einen aktuellen Beitrag im Forum. Da geht es in erster Linie um Objekte und so... (Vererbung wird auch angesprochen... ;)). http://www.c-plusplus.net/forum/viewtopic-var-t-is-162850.html

    Find ich sehr interessant...


Anmelden zum Antworten