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 function int 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 of ANFRAGE Menge' anfragetest.cpp:49: error: conflicts with previous declarationlong unsigned int Menge'
    anfragetest.cpp:50: error: no matching function for call to ANFRAGE::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 file

    Ich 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.html

    Es 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


Anmelden zum Antworten