Seite 1 von 1

Zugriff auf Objekte von ueberall her

Verfasst: 11. April 2008 13:46
von C167
Tagchen,
ich hab mir gerade ein paar Gedanken gemacht, wie man es erreichen koennte, dass man wie mit

Code: Alles auswählen

QSqlDatabase::database()
oder der QSettings-Klasse an jeder beliebigen Stelle im Code Zugriff auf ein Objekt erhaellt. Bei QSqlDatabase bekommt man ja ueber die statische "::database(QString)"-Methode ein Datenbankobjekt zurueckgeliefert, das anderswo erstellt wurde, selbst wenn sich die Klasse die das Objekt erstmalig erstellt und die es spaeter benutzt nicht kennen.
Gerade bei Klassen, die mit der Konfiguration zu tun haben ist es ja sinnvoll, ein gemeinsames Objekt ueberall nutzen zu koennen.

Nun die vielleicht wichtigste Frage dazu: Wo wird denn das Objekt, dass dann zurueckgeliefert wird, gespeichert? Und wie erhalten statische Methoden bzw. die Konstruktoren der Klasse (QSettings) Zugriff darauf?
C167

Verfasst: 11. April 2008 14:38
von keeney

Verfasst: 11. April 2008 15:19
von C167
vielen Dank, genau das suche ich!

Ich werde in den naechsten Wochen anfangen, sowas mal zu implementieren :) Mit ein wenig Glueck reicht mein Verstaendniss von C++ und Qt mittlerweile aus, um bissel in den Qt-sourcen abzugucken :)

Verfasst: 12. April 2008 13:29
von franzf
keeney hat geschrieben:Schau dir mal http://de.wikipedia.org/wiki/Singleton_ ... smuster%29 an
Wobei das im Fall von QSqlDatabase einfach nur eine statische Methode ist. Googeln nach static hilft sicherlich weiter :)

Verfasst: 12. April 2008 14:02
von C167
franzf hat geschrieben:Wobei das im Fall von QSqlDatabase einfach nur eine statische Methode ist. Googeln nach static hilft sicherlich weiter :)
Ja, wie es ja ueberall beschrieben wird. nur intern wird da auch ein bissel was gearbeitet. das mit der QSqlDatabase war auch nur ein Beispiel, war das erste was mit eingefallen ist weil ich es relativ haeufig brauche

eine interessante Beschreibung ist z.B. http://www.codeguru.com/cpp/cpp/cpp_mfc ... 9__2/#more

Ich programmier erstmal mein aktuelles Projekt zu ende, dann Pinge ich hier oder im c-plusplus.de forum vorbei (is ja nicht unbedingt Qt speziefisch) um da was zum laufen zu bringen :)