Strukturelle Frage zur OOP



  • Hallo,

    ich habe mal eine Frage, wie ich denn am besten meine Struktur für die objektorientierte Programmierung gestalten soll.

    Und zwar habe ich das generelle Problem, dass eine Variable generell in jeder Klasse verfügbar sein muss, auch wenn eine Komposition bzw. Aggregation erstellt wird.

    Ich habe mir schon überlegt, diese Variable als globale Variable anzulegen, aber das gefällt mir nicht so.

    Eine andere Möglichkeit könnte vielleicht sein, an den Konstruktor der Klasse den Zeiger der Variable zu übergeben und man eben bei der Erstellung des Objektes zuerst eine Variable diesen Typs anlegen muss und diese der Klasse übergibt.

    Was mein Ihr dazu?



  • Um was für ein Objekt handelt es sich denn?
    z.B. Settings oder ähnliches könnten via Singleton zur Verfügung gestellt werden.

    Simon



  • ja danke, das singleton Entwurfsmuster werde ich verwenden.



  • also ich habe mir mal ein Beispiel von Wiki geholt. diese funktioniert alerdigns nicht richtig.

    singleton.h:

    class Singleton {
    
    	private:
    		//Konstruktor private, damit man sich keine Instanzen holen kann.
    		Singleton();
    		//Den Kopierkonstruktor schützen um zu vermeiden, dass das Objekt unbeabsichtigt kopiert wird.
    		Singleton(const Singleton& cc);
    
    	public:
    		~Singleton();
    		static Singleton* getInstance();
    
    }
    

    singleton.cpp:

    Singleton* Singleton::getInstance()	{
    
    	static Singleton instance;
    	return &instance;
    
    }
    

    In der singleton.cpp datei bekomme ich allerdings eine Fehlermeldung:

    singleton.cpp:2: Fehler: expected initializer before »*« token
    

    Was für eine Initialzer soll das denn sein?



  • Hast du vergessen, singleton.h in singleton.cpp zu includen?



  • Ausserdem: Dein Code ist C++, nicht C++/CLI, warum postest Du also hier?
    Simon


Anmelden zum Antworten