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

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

1

14.07.2006, 22:41

#if !defined usw.

tach .. 8)

also .. ich hab das mit #define usw. nicht so ganz verstanden!
zum beispiel bei singletons

C-/C++-Quelltext

1
2
3
#if !defined (_SINGLETON_H_)
#define _SINGLETON_H
// [...]

warum macht man das? schreibt man das nur in .hpp-dateien?
wann verwendet man sowas noch? und warum?
würde man das auch bei einer klasse verwenden zb. in einer klasse eines dreiecks oder sonstwas ..

kann mir das vllt. jemand erklären? :roll:
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

Anonymous

unregistriert

2

14.07.2006, 22:43

Das ist ein so genannter Header Guard. Damit wird gesichert, dass
die Header Datei nicht 2 mal eingebunden wird. Und wieso sollte man
das bei einer Klasse verwenden??? Und wann man sowas noch verwendet...
Also ich verwende es sonst nicht, da mich #define ankotzt...

3

14.07.2006, 22:48

Beim VC ist aber #pragma once dem obrigen vorzuziehen...

Aja..

C-/C++-Quelltext

1
2
3
4
5
6
#ifndef _TEST_INCLUDED_
#define _TEST_INCLUDED_

// ...


#endif

entspricht deinem da oben... nur nen bissel anders geschrieben :D
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

4

14.07.2006, 22:49

1.) man kann auch #pragma once nehmen (Visual Studio)
2.) das benutzt man, das ein Header nur 1x eingefügt wird
3.) für manches ist #define unumgänglich (Exceptions, Include/Header Guards)
4.) Das hat nichts mit Klassen an sich zu tun

...

n.) mist zu langsam :(

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

5

14.07.2006, 22:50

meinst du zb.

ich hab in einer .cpp schon "blah.h" und in einer anderen auch ..

also 2 mal .. (uiiii :D)

und damit das kein problem ist.. mach ich in die "blah.h"
#if !defined (_BLAH_H_)
#define _BLAH_H_

?


*edit
verdammt seid ihr schnell .. O_o
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

6

14.07.2006, 22:59

1.) wenn du ein #if hast, brauchst du auch immer ein #endif
2.) ja, wenn du die .h 2x includierst (hässliches Wort)

Bla.h

Quellcode

1
2
3
4
5
6
#if !defined(_BLA_H_)
#define _BLA_H_

//Def's

#endif


Test.h

Quellcode

1
2
#include "Bla.h"
#include "SubTest.h"



SubTest.h

Quellcode

1
#include "Bla.h"


Wenn er die .h also "kennt" includiert er se nicht ;)

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

7

14.07.2006, 23:05

okili dokili .. danke jungs :)


so.. und wer mag mir jetz nochmal kurz ne übersicht über die doppelpointer** geben?

also so im großen und ganzen hab ich das glaub ich verstanden..

aber ne zusammenfassung wäre nice .. mit nem link geb ich mich auch zufrieden :)
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

LidlAzubi

Frischling

Beiträge: 21

Wohnort: Beerendorf

  • Private Nachricht senden

8

15.07.2006, 17:01

#define

Man braucht #define , dafür das man die Header nur einmal einbindet, sonst könnte es beim Compiler probleme geben, allerdings geht dies auch mit #pragma once
Es gibt nicht nur Schattenseiten im Leben, sondern auch Nachteile.
MfG LidlAzubi

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

9

15.07.2006, 17:02

schau mal ein paar Threads weiter oben ;) ich denk er weiss es

Werbeanzeige