seltsamer Fehler
-
hoi,
Ich hoffe ich bin hier richtig mit meinem Problem.
Ich will eine liste machen, was an sich kein problem darstellt, nur kriege ich diesmal einen seltsamen Fehler:
--------------------Configuration: editor - Win32 Debug--------------------
Compiling...
editor.cpp
e:\schule\vcpp\editor\generator.hpp(3) : error C2143: syntax error : missing ';' before ''
e:\schule\vcpp\editor\generator.hpp(3) : error C2501: 'listenElement' : missing storage-class or type specifiers
e:\schule\vcpp\editor\generator.hpp(3) : error C2501: 'erstesLE' : missing storage-class or type specifiers
generator.cpp
pageElem.cpp
Error executing cl.exe.*Am code kann das nicht liegen, da ich exakt den gleichen Code aus einer anderen funktionieren Liste eingefügt habe. Nur die Header-Dateinamen beim includen behalten.
Der folgende Code funktioniert in dem altem Project einwandfrei. Kopiere ich ihn in den neuen, kommt der oben genannte Fehler. Programmiere unter Visual C++ 6. Vielleicht habe ich etwas falsch beim hinzufügen der header-dateien zum Projekt gemacht?
editor.cpp:
#include <iostream.h> #include <string.h> #include <stdlib.h> #include "generator.hpp" #include "pageElem.hpp" void main(void){ liste Liste; }generator.hpp
class liste{ private: listenElement *erstesLE; //das wird als fehler markiert (missing ';' before '*') public: liste(); };generator.cpp
#include <iostream.h> #include <string.h> #include <stdlib.h> #include "pageElem.hpp" #include "generator.hpp" liste::liste() { //Konstruktor erstesLE = new listenElement(0); erstesLE->next = NULL; }pageElem.hpp:
class listenElement{ public: int Nr; listenElement *next; listenElement(int kNr); //Konstruktordeklaration };pageElem.cpp:
#include <string.h> #include "pageElem.hpp" listenElement::listenElement(int kNr){ //Konstruktordefinition this->Nr = kNr; }Danke im Voraus.
-
Tja, der Compiler kennt deine Klasse listenElement noch nicht. Entweder machst du sie ihm per forward-Deklararion bekannt oder du inkludierst direkt die <pageElem.hpp>.
-
ja, das habe ich heute in der Schule rausgefunden.

Mann musste in generator.hpp, pageElem.hpp includen.komischerweise gehts im anderem Projekt auch ohne dies. hmm..
-
Habe das selbe Problem, kriege es aber nicht so einfach gelöst...
c:\eigene dateien\myprojects\sp\soundpitcher\tkkdlg.h(56) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'm_dSPD' c:\eigene dateien\myprojects\sp\soundpitcher\tkkdlg.h(56) : error C2501: 'CSoundPitcherDlg' : Fehlende Speicherklasse oder Typbezeichner c:\eigene dateien\myprojects\sp\soundpitcher\tkkdlg.h(56) : error C2501: 'm_dSPD' : Fehlende Speicherklasse oder Typbezeichner SoundPitcherDlg.cpphabe dann in Tkkdlg.h die SoundpitcherDlg.h includiert, aber er kennt die Klasse und die Funktionen trotzdem nicht.... (also die selbe Fehlermeldung bleibt)
Hab ich was übersehen ?
-
Schau mal ob Dir der Beitrag weiterhilft
-
Thx.
Denke das ist auch genau mein Problem, das jede Klasse die andere Includieren will.Geht das denn nur mit Zeigern zu lösen ? Gibts keine andere möglichkeit, so das ich (was mir lieber ist) die Funktionen einer anderen Klasse mit einem Klassenvariablennamen ansprechen kann ?