Fehlermeldungen?! Was ist falsch?!
-
#include <iostream> class ANFRAGE { private: int *Ordnung; unsigned long Anzahl; unsigned long maxAnzahl; public: ANFRAGE(unsigned long); ~ANFRAGE(void); bool neu(int); int erledigt(void); bool leer(); }; ANFRAGE::ANFRAGE(unsigned long s) { Ordnung=new( int[s] ); if(Ordnung) { Anzahl=0; maxAnzahl=s; } else {Anzahl=maxAnzahl=0;}} ANFRAGE::~ANFRAGE(void) { if(Ordnung) delete[](Ordnung);} bool ANFRAGE::neu(int w) { if(Anzahl<maxAnzahl) { Ordnung[Anzahl++]=w; return(true); } else {return(false);} } int ANFRAGE::erledigt(void) { if(Anzahl>0) return(Ordnung[--Anzahl]); else return(0); } bool ANFRAGE::leer() { return(Anzahl==0); } int main() { unsigned long Menge=100; ANFRAGE(Menge); char Arbeitsvorrat[Menge]; unsigned int x; cout << "Ankommende Anfragen ? "; cin.getline(Arbeitsvorrat,Menge); //getline: Einlesen einer Zeichenkette for(x=0;x<strlen(Arbeitsvorrat);x++)ANFRAGE.neu(Arbeitsvorrat[x]); cout << endl; cout << "Erledigte Anfragen ? "; while(!ANFRAGE.leer()) cout << (char)(ANFRAGE.erledigt()); cout << endl; system("pause"); }Compiling source file(s)...
anfragetest.cpp
anfragetest.cpp: In functionint main()': anfragetest.cpp:50: error: conflicting declaration 'ANFRAGE Menge' anfragetest.cpp:49: error: 'Menge' has a previous declaration aslong unsigned int Menge'
anfragetest.cpp:50: error: declaration ofANFRAGE Menge' anfragetest.cpp:49: error: conflicts with previous declarationlong unsigned int Menge'
anfragetest.cpp:50: error: no matching function for call toANFRAGE::ANFRAGE()' anfragetest.cpp:3: note: candidates are: ANFRAGE::ANFRAGE(const ANFRAGE&) anfragetest.cpp:17: note: ANFRAGE::ANFRAGE(long unsigned int) anfragetest.cpp:53: error:cout' undeclared (first use this function)
anfragetest.cpp:53: error: (Each undeclared identifier is reported only once for each function it appears in.)
anfragetest.cpp:54: error:cin' undeclared (first use this function) anfragetest.cpp:55: error: expected primary-expression before '.' token anfragetest.cpp:56: error:endl' undeclared (first use this function)
anfragetest.cpp:58: error: expected primary-expression before '.' token
anfragetest.cpp:58: error: expected primary-expression before "char"
anfragetest.cpp:58: error: expected `)' before "char"
anfragetest.cpp:61:2: warning: no newline at end of fileIch hab das als Übungsaufgabe, leider komme ich nicht weiter

-
Hallo,
du solltest vllt.
ANFRAGE anfr(Menge);
schreiben und weiterhin noch nach dem include ein using namespace std; einfügen. Wenn du immer ANFRAGE.neu schreibst, kann das nicht klappen. Du musst eine konkrete Instanz anlegen, damit du auf deine Methoden zugreifen kannst.Bei return brauchst du keine Klammern machen, außer du willst z.B. bei return 5*2+4 zuerst 2+4 ausrechnen lassen.
void in die Parameterliste zu schreiben, ist auch unnötig, das macht man nur in C.
system("PAUSE") sollte man auch vermeiden, siehe hier: http://www.c-plusplus.net/forum/viewtopic-var-t-is-111042.htmlEs ist im Übrigen "gängige Konvention", dass Klassennamen mit einem Großbuchstaben beginnen und dann klein weitergeschrieben werden. Variablen fangen i.A. klein an, also hier dann:
class Anfrage { //das ganze Zeug }; unsigned long menge = 100; Anfrage anfr(menge); //usw.MfG
GPC
-
daran lags also... mhh, sowas sollte einem ja schon fast auffallen...
ANFRAGE groß geschreiben, so wird das gelehrt! Also der Auszug war aus einer Übung der VHB (virtuelle Hochschule Bayern)...
aber hat vielleicht spezielle gründe...danke schön.
gruß
dani