Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Shark_3D

Treue Seele

  • »Shark_3D« ist der Autor dieses Themas

Beiträge: 311

Wohnort: Hannover

Beruf: Schüler

  • Private Nachricht senden

11

28.05.2003, 19:08

Hmm was ist denn der Vorteil vin Singletons?
"Immer die doppelte Menge"
(Kaufmannsregel Nr.355 von der Lehrkassette 3)

12

28.05.2003, 19:14

Weiß nicht!!! ???

Patrick

Alter Hase

Beiträge: 1 264

Wohnort: Düren

Beruf: Fachinformatiker für Anwendungsentwicklung

  • Private Nachricht senden

13

28.05.2003, 19:39

1. verstoßen nicht gegen das OOP Gesetz OCP
2. static wird im Profi C++ nicht gerne gesehen stichwort: namespaces
3. staticclasses verstoßen gegen das OCP
4. sogesehen besser für InterfaceProgrammierung
5. speed? weis ich net, könnte sein, je nach art des Singletons
6. einfacher, man siehts ja oben.

Ich hoffe das reicht :) gaaaanz grob und hinter der Hand gesprochen: hat genau den selben effekt wie die staticclasses, aber sagt das nur nie den Erfindern von C++, die hauen euch windel weich ;)

Shark_3D

Treue Seele

  • »Shark_3D« ist der Autor dieses Themas

Beiträge: 311

Wohnort: Hannover

Beruf: Schüler

  • Private Nachricht senden

14

28.05.2003, 21:49

Ähmm auch wenn ich singletons benutze muss ich doch das hier machen:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class RA_API RA_D3D
{
private:
    RA_D3D (void);
    static RA_D3D   m_Instance;//The one and only :)
    static LPDIRECT3D9 m_pD3D;
    static LPDIRECT3DDEVICE9 m_pD3DDEVICE;


public:
HRESULT InitD3D(HWND hWnd);
static RA_D3D            &getInstance      (void)   { return (m_Instance); } 

};


Und da krieg ich immer noch den Linker Error.Sorry wenn ichs falsch mach aber ich will ja nur lernen :rolleyes:
"Immer die doppelte Menge"
(Kaufmannsregel Nr.355 von der Lehrkassette 3)

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

15

28.05.2003, 21:51

Das "static" kommt nur vor die "one and only"-Klasseninstanz. Ich wäre dafür, diese als Zeiger-Typ zu deklarieren. Da es eine statische Variable ist, musst Du ihr irgendwo auch einen Wert geben (in der CPP-Datei).
Dort sollte dann stehen: RA_D3D* RA_D3D::m_pInstance = NULL; oder so.

Shark_3D

Treue Seele

  • »Shark_3D« ist der Autor dieses Themas

Beiträge: 311

Wohnort: Hannover

Beruf: Schüler

  • Private Nachricht senden

16

28.05.2003, 21:55

Ach so danke :)
"Immer die doppelte Menge"
(Kaufmannsregel Nr.355 von der Lehrkassette 3)

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

17

28.05.2003, 22:00

@Patrick: Kann es sein, dass Dein Code einen Fehler enthält? Wenn Du die Instanz der Klasse direkt als Wert-Typ speicherst und nicht als Zeigertyp, dann dürfte die Größe der gesamten Klasse unendlich sein... denn sie hat ja nicht nur statische Variablen, sondern auch Dinge wie HWND m_hWindow usw.!

Patrick

Alter Hase

Beiträge: 1 264

Wohnort: Düren

Beruf: Fachinformatiker für Anwendungsentwicklung

  • Private Nachricht senden

18

28.05.2003, 22:05

nope ist schon richtig so :)

Shark_3D

Treue Seele

  • »Shark_3D« ist der Autor dieses Themas

Beiträge: 311

Wohnort: Hannover

Beruf: Schüler

  • Private Nachricht senden

19

28.05.2003, 22:07

Hmm also ich kann nichts statisches benutzen :crying: Da kommt immer der Linker Error ??? wenn ich das sttic weg mach funzt es. Wozu soll man das überhaubt statisch machen???


PS:Kann man sich dieses OCP irgendwo angucken???
"Immer die doppelte Menge"
(Kaufmannsregel Nr.355 von der Lehrkassette 3)

Patrick

Alter Hase

Beiträge: 1 264

Wohnort: Düren

Beruf: Fachinformatiker für Anwendungsentwicklung

  • Private Nachricht senden

20

28.05.2003, 22:31

mal ein bischen aus dem OCP ist wohl nicht das komplette:
http://www.objectmentor.com/publications/ocp.pdf

Werbeanzeige