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

21

25.07.2006, 11:15

Zitat von »"koschka"«

Nein das hat so gar nichts mit this zu tun, und auch nichts mit Faulheit, ist aber ein gutes Nebenprodukt ;)

Zitat von »"koschka"«


Vorteile: Wenn du in einem Namensraum xyz bist, und du dort auch eine Funkion CreateFont definiert hast, kann es zu Konflikten kommen, da der Compiler nicht weiss welches er nun nutzen soll, das globale aus :: oder das aus xyz?


Ok, schlechtes Beispiel. Ich meinte nur, man kann es also hinschreiben oder lässt es weg, dann wird es implizit angenommen, das der namensraum global ist.


Zitat von »"du"«

Zitat


...ist den HFONT das Selbe wei HFONT__ ?!? Eigentlich ja nicht, oder ist dieses HFONT__ in directdraw.h definiert?


nein aber HFONT := HFONT__*
und ist in der WinAPI definiert, aber das solltest du wissen, ...,


nein, ich wusste nicht, das HFONT das Selbe wie HFONT__* ist. Woher hätte ich das wissen sollen? Gibts da einen überbegriff für, warum das so ist. Oder irgendwas zum lesen. Beim MSDN hab ich dazu jetzt noch nichts brauchbares gefunden :(

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

22

25.07.2006, 11:19

Zitat


Ok, schlechtes Beispiel. Ich meinte nur, man kann es also hinschreiben oder lässt es weg, dann wird es implizit angenommen, das der namensraum global ist.

Nein du hast das Problem nicht verstanden. Es wird nich der globale sondern der aktuelle Namensraum genommen, wenn man dort nichts findet, dann der gloable. Also wird bei dem Bsp. erst in xyz gesucht, dann global. Dummerweise wird dann aber auch die xyz::Function benutzt, und nicht ::Function. Man will aber ::Function - also die WinAPI Funktion in dem Fall. Deswegen schreibt man explizit ein :: davor, das es zu solchen Missverständnissen nicht kommt. Alternativ kann man auh noch Ungarische Notation u.s.w. nutzen.


Das ist einfach so, es gibt immer ein XYZ__* Objekt aus dem dann das Objekt XYZ abgeleitet wird, sowas weiss man wenn man mit WinAPI codet :badgrin: wenn nicht weisstes jetzt 8)

Anonymous

unregistriert

23

25.07.2006, 11:25

Schreib doch einfach mal in deinen Compiler HFONT und halte deine
Maustaste länger drauf...

EDIT: HFONT ist nur ein Makro

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

24

25.07.2006, 11:26

Psssst, Verräter ... solche Tricks kommen erst im zweiten Schuljahr dran... lüncht ihn! :evil: :badgrin: :D

25

25.07.2006, 11:30

Zitat von »"koschka"«

Zitat


Ok, schlechtes Beispiel. Ich meinte nur, man kann es also hinschreiben oder lässt es weg, dann wird es implizit angenommen, das der namensraum global ist.

Nein du hast das Problem nicht verstanden. Es wird nich der globale sondern der aktuelle Namensraum genommen, wenn man dort nichts findet, dann der gloable. Also wird bei dem Bsp. erst in xyz gesucht, dann global. Dummerweise wird dann aber auch die xyz::Function benutzt, und nicht ::Function. Man will aber ::Function - also die WinAPI Funktion in dem Fall. Deswegen schreibt man explizit ein :: davor, das es zu solchen Missverständnissen nicht kommt. Alternativ kann man auh noch Ungarische Notation u.s.w. nutzen.


Das ist einfach so, es gibt immer ein XYZ__* Objekt aus dem dann das Objekt XYZ abgeleitet wird, sowas weiss man wenn man mit WinAPI codet :badgrin: wenn nicht weisstes jetzt 8)


>sowas weiss man wenn man mit WinAPI codet
Naja, das was ich derzeit mit c++ erlebe und auch mein ausflug in die winapi, würd ich so direkt nicht als richtiges "coden" bezeichnen. Eher sowas wie eine Weinprobe......dieser Aspekt ist mir allerdings bei der winapi nicht aufgefallen. Wieder was gelernt...vielen Dank.

Also machts keinen Unterschied ob ich

::HFONT font1;
oder
::HFONT__* font1;

schreibe?!

Bezüglich des namensraum: Ok, hab kapiert was du meinst.

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

26

25.07.2006, 11:38

nein, das erste ist wie gesagt ein Makro (HFONT) und HFONT__* ist der Typ. Letztendlich wird das Makro auch nur durch HFONT__* ersetzt, also schreibst du in beiden Fällen quasi das gleiche.

Anonymous

unregistriert

27

25.07.2006, 11:44

Und HFONT ist nur eines von vielen :roll:

28

25.07.2006, 11:45

Zitat von »"koschka"«

nein, das erste ist wie gesagt ein Makro (HFONT) und HFONT__* ist der Typ. Letztendlich wird das Makro auch nur durch HFONT__* ersetzt, also schreibst du in beiden Fällen quasi das gleiche.


Ok, danke für die Mühe, denke ich habs kapiert. :)

Werbeanzeige