Globale Deklaration Privater Objekte



  • Moin,
    ich versuche grad das objekt TlFactory globl zu deklarieren und später zu initialisieren. Aber irgendwie will dem nicht so recht. Wie mache ich das normal in C++?

    Versuch 1:

    CTlFactory& TlFactory;
    
    int _tmain(...)
    {
        ...
        TlFactory = CTlFactory::GetInstance();
        ...
    }
    
    Fehler	1	error C2530: 'TlFactory': Verweise müssen initialisiert werden
    
    Fehler	2	error C2248: "Pylon::CTlFactory::operator =": Kein Zugriff auf private Member, dessen Deklaration in der Pylon::CTlFactory-Klasse erfolgte
    

    Versuch zwei mit extern:

    extern CTlFactory& TlFactory;
    
    int _tmain(...)
    {
        ...
        TlFactory = CTlFactory::GetInstance();
        ...
    }
    
    Fehler	1	error C2248: "Pylon::CTlFactory::operator =": Kein Zugriff auf private Member, dessen Deklaration in der Pylon::CTlFactory-Klasse erfolgte.
    

    Danke schonmal!



  • Es steht ja schon im Grunde da, eine Referenz musst du auch zuweisen. Gegenfrage: wieso willst du das global machen?



  • Ich will grundsätzlich die einzelnen vorgänge der Kamera (um die es dabei geht; Connect, grabben in verschiedenen modi etc) in funktionen verpacken. Nur dazu muss ich global auf das Kameraobjekt welches noch erzeugt wird (beim Connecten) zugreifen können. Oder gibt es da andere möglichkeiten?



  • blacksheep1 schrieb:

    Ich will grundsätzlich die einzelnen vorgänge der Kamera (um die es dabei geht; Connect, grabben in verschiedenen modi etc) in funktionen verpacken. Nur dazu muss ich global auf das Kameraobjekt welches noch erzeugt wird (beim Connecten) zugreifen können. Oder gibt es da andere möglichkeiten?

    Hier bietet sich doch eine Klasse an, die dann deine Kamera repräsentiert. Da bringst du alles an Eigenschaften (z.B. Name, ExposureTime, Gain...) und Methoden (z.B. Connect, GrabImage...) unter. Das ist sinnvoller, als ein globales Objekt und lose Funktionen zu nutzen.



  • das wäre dann das nächste ziel. Nur dafür müsste das Objekthandling erstmal funzen 🙂



  • Irgendjemand ne idee? Wäre über jede hilfe dankbar!


Anmelden zum Antworten