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

Anonymous

unregistriert

1

10.08.2003, 22:25

FEHLER - Unzulaessiger vollstaendig angegebener Name in E...

...lementdeklaration.

Hallo!

Am Anfang einer einer cpp-Datei habe ich die statischen Elemente einer meiner statischen Klassen initialisiert (BOOL Klasse::Variable = FALSE).
Nun erscheint erscheint obiger Fehler.

In der MSDN-Dokumentation steht, dass dieser Fehler nur auftaucht, wenn diese Variable IN EINER KLASSE DEKLARIERT wird.

Habe alles kontrolliert, aber hinter allen Klassendefinitionen steht ein Semikolon.

Was könnte sonst noch diesen Fehler verursachen?

Warte dankend auf eine Antwort, während ich weiterhin die Ursache dieser 134 Fehler suche...

Anonymous

unregistriert

2

10.08.2003, 22:31

Hallo!

Hab endlich Klammer gefunden, die den Fehler verursacht hat.
Sie fehlte hinter einer inline-Funktion.

Danke an alle, die nach einer Lösung gesucht haben.

Patrick

Alter Hase

Beiträge: 1 264

Wohnort: Düren

Beruf: Fachinformatiker für Anwendungsentwicklung

  • Private Nachricht senden

3

10.08.2003, 22:48

Re: FEHLER - Unzulaessiger vollstaendig angegebener Name in

Zitat von »"Gast"«

Am Anfang einer einer cpp-Datei habe ich die statischen Elemente einer meiner statischen Klassen initialisiert (BOOL Klasse::Variable = FALSE).


Schäm dich! erstens benutzt du BOOL und nicht bool (Schon gegen den Standard verstoßen) und 2. eine statische Klasse? *zitter*


und einen Aufruf Klasse::Variable = FALSE; ? OMG! Nein Bitte nicht.... bitteeee Gnade... Bitttttttteeeeeeeeeeeeee:crying: :crying: :crying: :crying:

Also ich will nur sagen zeig dem code mal nem Profi und er wirft ihn Dir um die Ohren (Im wahrsten Sinne des Wortes);D;D;D

4

10.08.2003, 22:49

IIIIIIIIIH!!!!! Verwende lieber Singletons
Ein Gespenst geht um in Europa...

Anonymous

unregistriert

5

10.08.2003, 22:56

Was ist denn so schlimm an bool? Und warum wird static nicht gerne gesehen? Warum gibt es dann static überhaupt?

Anonymous

unregistriert

6

10.08.2003, 22:58

sorry: 7. Wort: BOOL

Anonymous

unregistriert

7

10.08.2003, 23:05

PS: David verwendet auch BOOL und statische Klassen in seiner Engine!

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

8

10.08.2003, 23:10

@Patrick:
Du bist immerhin Moderator, da bitte ich um ein wenig ernsthaftere und nicht so herablassende Beiträge. Wäre das für Dich machbar? Jaja, ich weiß es ja langsam, es ist alles Mist und ekelig und widerlich, was ich da gemacht habe. Tut mir auch sehr, sehr leid. Sag es noch 120x, dann weiß ich's noch besser.

Patrick

Alter Hase

Beiträge: 1 264

Wohnort: Düren

Beruf: Fachinformatiker für Anwendungsentwicklung

  • Private Nachricht senden

9

10.08.2003, 23:28

@David:
na okay ich bin ja nicht so :)

@Gast:
Nun also fangen wir mal an mit BOOL vs. bool. Der Typ bool ist seit der C98 serie Standard geworden vorher war es einfach nur ein selbstdefinierter Typ wie z.B. der hier:

Quellcode

1
2
3
typedef unsigned int bool;
const bool false = 0;
const bool true = 1;


Daran hat sich seit C98 (oder war es ein paar Serien Tiefer? Hm weis ich grade nicht, Kaffee ist leer) auch nix geändert, die Bitzahl bleibt die selbe sowie das Handling. Naja nur die Win32API muss (leider mal wieder) anders arbeiten und sich nicht soooo genau an den Standard halten.

Der BOOL (FALSE und TRUE) sind also Kein ISO-Standard von C++ sondern um ganz ehrlich zu sein: ein Fragment aus Win3.11 der (zum glück) nicht Standardtisiert wurde. sondern eher bool. BOOL ist glaube ich 32bit und bool nur 16bit. Der Unterschied liegt auf der Hand, BOOL ist schneller aber braucht mehr Speicherplatz. bool ist etwas langsamer aber braucht weniger. Für BOOL muss man die Windows.h includieren und bool ist ein Buildin-type (Also in den Compiler eingebauter typ).

Da BOOL kein Standard ist wird er in OOP Quellcodes SEHR ungerne gesehen sondern lieber bool.

Zu dem was David gemacht hat in seiner Engine sag ich mal nix :) Aber ich glaub er hatte auch seine Gründe, jedoch heißt das nicht, das es die Beste Lösung ist :)

Zum static:

static ist ein Fragment aus ANSI C Zeiten kann jedoch wie alles aus ANSI C in C++ mit eingebaut werden (wird jedoch auch net gerne gesehen, denn C und C++ Mischen gilt als "Unschön").

Quellcode

1
2
3
4
5
// ANSI C Methode:
static int i = 0;

// C++ Methode:
namespace { int i=0; }

In C++ wird static durch einen sog. UnnamedNamespace ersetzt. um das Mischen zu unterbinden. Wenn man ein reihnes C++ Programm gecodet hat, kann man z.B. die Standard ANSI C lib nicht mit ins programm stopfen wodurch das Programm derbst klein werden kann.

Und nun zu Static-Klassen:
Static-Klassen werden durch Mehrere OOP Gesetze wie z.B. das OCP verboten, da eine Statische Klasse als "Globale Variable" gedeutet wird laut OCP. Und Globale Variablen sind verboten laut diesem Gesetz. Es gibt nun mehrere Möglichkeiten, A: Singleton oder B: Eine normale Klasse.

Naja also ich bin ehrlich, ich würde einige kennen, die dir schon wegen dem BOOL dir den code um die ohren werfen würden und bei statischen klassen oder Globalen Variablen einen Nervenzusammenbruch deswegen bekommen, und DIE sind noch mehr von der OOP besessen als ich ;)

@David:
bist du zufrieden mit mir? :angel: :angel: :angel:

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

10

10.08.2003, 23:34

Ja, so gehört sich das für einen guten Moderator!

(Link)

Werbeanzeige