globaler zeiger
-
d00j1 schrieb:
aber wo ist mein speicher-objekt (array, liste)?
Das müsstest du eben noch in die Klasse einbauen. Was vlad_tepesch gezeigt hat, war eher ein Grundgerüst, um Singletons zu verdeutlichen.
-
okey - verstehe ist eine schöne Sache :).
Folgendes habe ich versucht:class Sim_Queue { private: static Sim_Queue *instance; Sim_Queue(); int db; public: static Sim_Queue *getInstance() { if (instance == NULL) { instance = new Sim_Queue(); } return instance; } void set (int p) { db = p; } }; int main () { Sim_Queue* s = Sim_Queue.getInstance(); return 0; }Leider gibt
Sim_Queue* s = Sim_Queue.getInstance();einen Fehler?
Und wenn es gehen würde. Könnte ich dann mit s.set(blub) db ändern?vielen lieben Danke

-
du statische member qualifiziert man über die klasse und den scopoperator:
int main () { Sim_Queue* s = Sim_Queue::getInstance(); return 0; }cih würds dennoch mit der statischen lokalen variable machen, hat den vorteil, dass die abfrage entfällt.
Und ich würde statt einen pointer eine referenz zurückgeben, dass ist eher c++ stylish
-
habs hinbekommen schön

wieso sind referenzen denn besser?
-
d00j1 schrieb:
habs hinbekommen schön

wieso sind referenzen denn besser?1. Garantieren Referenzen das ein Objekt vorhanden ist (NULL ist unzulässig)
2. Ist die Referenzsyntax meist angenehmer zu lesencu André
-
Referenzen sind nicht grundsätzlich immer besser, sondern eben bequemer und sicherer. Es gibt Fälle, da kommt man um Zeiger nicht herum, aber wenn möglich (z.B. Parameterübergabe), sollte man auf Referenzen zurückgreifen.
-
warum geht das:
class runTime { private: static int rTime; runTime(); public: static int outTime() { return rTime; } }; int runTime::rTime=0;nicht?

-
Das frage ich mich auch (es sollte funktionieren).
-
was heisst geht nicht?
-
naja Dev-C++ sagt:
multiple definition of `runTime::rTime'
?
-
mach die definition ( int runTime::rTime=0; ) in eine cpp datei.
theta
-
d00j1 schrieb:
Dev-C++
Ich würde dir raten, davon wegzukommen. Bloodshed Dev-C++ wird nicht mehr weiterentwickelt und hat auch einige Probleme. Gute Alternativen wären Microsoft Visual C++ 2008 Express Edition oder Code::Blocks.
-
kann man denn mit visual c++ ganz normal c++ entwickeln? ich meine ich hätte das mal getestet und er kannte zB cout<< nicht?
theta@ ich habe es nun über die main funktion geschrieben und jetzt scheint es zu gehen, wieso auch immer?
-
d00j1 schrieb:
kann man denn mit visual c++ ganz normal c++ entwickeln?

Natürlich kann man das. Wenn man selber Fehler macht, sodass
coutnicht gefunden wird, kann man nicht die IDE beschuldigen. Glaub mir, mit MSVC++ kann man um einiges besser und effizienter programmieren als mit Dev-C++.d00j1 schrieb:
theta@ ich habe es nun über die main funktion geschrieben und jetzt scheint es zu gehen, wieso auch immer?
Wenn der Header mehrere Male eingebunden wird, hast du ein mehrfach definiertes Symbol, mit dem der Linker dann Probleme bekommt. Deshalb Deklarationen in die Header, Definitionen in Implementationsdateien.
-
wie lässt sich dies den einfach und konfortabel realisieren?
gibt es da irgendwelche standarteinstellungen?
-
okey, war wohl eine blöde frage.
kann iostream einfach mit <iostream> einbinden und cout mit std::cout benutzen.
ist denn std eine singleton-klasse?
-
d00j1 schrieb:
ist denn std eine singleton-klasse?
Nein, sondern ein Namensraum. Namensräume werden auch mittels Scope-Operator :: spezifiziert.
-
schön - namespaces sind auch eine ganz praktische sache

das hier ein wirklich schönes forum.