probleme mit enum
-
habe folgendes problem
habe einen enum typ geschrieben
enum Typ
{
eins, zwei, drei
};
will jezt diesen typ einer funktion als parameter übergeben
//deklaration
void funktion(Typ eintyp);//definition
void funktion(Typ eintyp)
{
.
.
.
}
habe nun folgendes problem
wird kompiliert
der linker schmeisst eine LNK2001 nichtaufgelöstes externes symbol
kann ich den das irgendwie hin bekommen oder soll ich die idee aufgebenDanke in voraus
-
liegt nicht an der enum
-
Sehr merkwürdig.
Hast du vielleicht den enum in einer CPP Datei deklariert, aber die Funktionsdefinition in einer anderen?Es ist anzuraten, die Typ-Deklaration in einen Header zu schreiben, und sowohl vor dem Funktionsprototypen, als auch der eigentlichen Funktion den Header eingebunden zu haben.
Was genau sagt den der Linkerfehler was fehlt ?
-
die enum steht in dem header
der linkfehler ist recht allgemein werd draus nicht schlau
-
*lol*
Vielleicht postest du ihn dann aber doch mal.
Wenn nicht, gute nacht.
-
hat wirklich nicht an enum gelegen
ich habe klassen in einer header datei deklariert
und in einer quellcode datei die funktionen inline definiert
habe jezt die ganzen funktionen gleich im header definiertjezt funktioniert es
danke für die hilfeps. wie ist das eigentlich möglich das die definition auserhalb des h solche
probleme verursacht ????
-
ingomar77 schrieb:
und in einer quellcode datei die funktionen inline definiert
Das ist ein Widerspruch in sich. Inline-Funktionen müssen in jeder Übersetzungseinheit definiert sein, in der sie benutzt werden. Wenn du sie nur in eine einzige Quellcodedatei steckst, beschwert sich der Linker.
-
aber für was giebt es dann den befehl "inline"
wenn man klassenfunktionen innerhalb von klassen definiert sind sie ja
automatisch inline oder ??
-
"In der Headerdatei" bedeutet nicht gleich "innerhalb der Klassendeklaration".
Manche benutzen auch Dateien, die sie am Ende der Headerdatei einbinden, und nennen die dann .inl oder so.