Object nicht initialisierbar



  • Hallo,

    habe eine Klasse Programmiert:

    #ifndef UnitLocalisationClassH
    #define UnitLocalisationClassH
    
    #include <ComCtrls.hpp>
    //---------------------------------------------------------------------------
    class StringLocalisation
    {
    	// private deklarierte Klassenvariablen und Methoden
    	private:
    
    	// public deklarierte Klassenvariablen und Methoden
    	public:
    		// Konstruktor / Destruktor
    		__fastcall StringLocalisation();
    		~StringLocalisation(){}
    
    		// Funktionen
    		void _fastcall SystemLangRename(TForm *pForm);
    };
    //---------------------------------------------------------------------------
    extern StringLocalisation ObjectTextLocal;
    //---------------------------------------------------------------------------
    #endif
    

    Headerdatei

    Wie ihr seht, nutze ich extern!

    pragma hdrstop
    
    #include "UnitLocalisationClass.h"
    
    StringLocalisation ObjectTextLocal();
    //---------------------------------------------------------------------------
    // Konstruktor
    __fastcall StringLocalisation::StringLocalisation()
    {
    }
    
    //--------------
    

    CPP-Datei

    In der CPP-Datei ist sichtbar das ich dieses Objekt Instanziere.
    Beim Compilieren erfolgt eine Fehlerausgabe:

    [BCC32 Fehler] UnitLocalisationClass.cpp(16): E2238 Bezeichner 'ObjectTextLocal' mehrfach deklariert
    [BCC32 Fehler] UnitLocalisationClass.h(32): E2344 'ObjectTextLocal' bereits deklariert

    Was stimmt bei mir nicht und wo mache ich den Fehler???
    itte habt Nachsicht, für mich ist das Neuland.



  • Das hier:

    Ohne Muse schrieb:

    StringLocalisation ObjectTextLocal();
    

    ist eine Funktionsdeklaration. Lass die Klammern weg.



  • Danke,
    aber muss der Konstruktor nicht bei Instanzierung aufgerufen werden?



  • Öh?

    StringLocalisation ObjectTextLocal = StringLocalisation(/*Parameter*/);
    


  • Ohne Muse schrieb:

    Danke,
    aber muss der Konstruktor nicht bei Instanzierung aufgerufen werden?

    StringLocalisation ObjectTextLocal;
    

    Hierbei wird der Standardkonstruktor aufgerufen.


Anmelden zum Antworten