Enum im header-Dateien
Ich habe die enum-Deklaration in einer header-Datei namens "sm.h"
enum GameStates
{
STATE_NULL = 0,
STATE_INTRO,
STATE_TITLE,
STATE_MAIN,
STATE_EXIT
};
Alle es tut, ist, die Liste der möglichen game-Staaten
Jedoch in die folgende Zeile in "base.cpp":
stateID = STATE_INTRO;
Dem compiler sagt "STATE_INTRO war nicht deklariert, in diesem Umfang". Ich habe keine Ahnung, was ich falsch mache. Ich weiß, dass ich die header-Datei in Ordnung und ich kann gehen, um seine Verzögerung aus .cpp-Datei. Also warum bin ich immer diese Fehlermeldung.
stateID = STATE_INTRO;
Wird verwendet in:
bool baseFunctions::load_rc()
{
stateID = STATE_INTRO;
currentState = new Intro();
return true;
}
definiert eine Klasse Funktion in einer header-Datei.
Gibt es keine globalen Konflikte, weil es die einzige enum in das ganze Programm
Sind Sie in der gleichen namespace?
Ich bin nicht mit einem Namen Platz. Brauche ich einen namespace
Wäre hilfreich, wenn du posten könntest mehr komplette code. Diese Stücke auf Ihre eigene, nicht falsch zu sein scheinen, so etwas muss falsch sein, auf einer anderen Ebene in Ihrem code.
Sorry, sollte dies noch deutlicher. Eine Menge Leute hier sind wirklich gute Programmierer, die können auch mal 6 Zeilen code und herauszufinden,, hey, bist du immer Konflikte im globalen namespace oder einige jazz so. Aber für den rest von uns sterblichen, die wir oft und gerne zu haben kompilierbar, testbaren code, so dass wir Sack und prod bis es klappt. Zumindest möchten Sie vielleicht zu geben, die header inklusive der enumeration Deklaration und die
Sorry ich will hinzufügen, alle base.cpp, base.h, sm.cpp, cm.h
Ich bin nicht mit einem Namen Platz. Brauche ich einen namespace
Wäre hilfreich, wenn du posten könntest mehr komplette code. Diese Stücke auf Ihre eigene, nicht falsch zu sein scheinen, so etwas muss falsch sein, auf einer anderen Ebene in Ihrem code.
Sorry, sollte dies noch deutlicher. Eine Menge Leute hier sind wirklich gute Programmierer, die können auch mal 6 Zeilen code und herauszufinden,, hey, bist du immer Konflikte im globalen namespace oder einige jazz so. Aber für den rest von uns sterblichen, die wir oft und gerne zu haben kompilierbar, testbaren code, so dass wir Sack und prod bis es klappt. Zumindest möchten Sie vielleicht zu geben, die header inklusive der enumeration Deklaration und die
load_rc()
Funktion.Sorry ich will hinzufügen, alle base.cpp, base.h, sm.cpp, cm.h
InformationsquelleAutor drCoding | 2012-02-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Aus Ihrem link auf Ihre Dateien, haben Sie die folgenden in beiden
sm.h
undbase.h
Ändern, die man in
sm.h
etwas wieund ich erwarte, dass Sie werde in Ordnung sein.
Als es ist,
base.cpp
Lastenbase.h
dann, wenn es umsm.h
das #ifndef ist falsch, so schließt er alles insm.h
.Kein problem. Wenn dein compiler unterstützt
#pragma once
verwenden, können Sie es in einem Ort Ihrer#ifndef
s. Code wird immer weniger tragbar, aber.InformationsquelleAutor Joel Rondeau
Wahrscheinlich ist, dass Sie nicht darunter "sm.h" base.cpp
InformationsquelleAutor Martin Beckett