Klassenproblem (?) mit MingW unter Eclipse



  • Ersteinmal hallo!

    Ich fange gerade mit C++ an (Umstieg von Delphi auf C++)
    und arbeite mit dem Buch "C++ in 21 Tagen".
    Normalerweise klappt das Kompilieren unter meiner IDE, also
    wird es wohl ein Programmierfehler meinerseits sein, der
    dem Compiler Probleme macht.

    Hier mein Code:

    #include <iostream.h>
    
    class Cat
    {
      public:
        Cat(int intAge);
        ~Cat();
        int const GetAge() {return itsAge;}
        void SetAge(int newAge) {itsAge = newAge;)
    
      private:
        int itsAge;
    }
    
    Cat::Cat(int intAge)
    {
      SetAge(intAge);	
    }
    
    Cat::~Cat()
    {
    
    }
    
    int main(int argc, char *argv) 
    {
      Cat *pCat = new Cat(5);
    
      cout << "Katzenalter:\t" << pCat -> GetAge();
    
      return 0;
    }
    

    Folgende Fehlermeldungen werden ausgegeben:

    error: `itsAge' undeclared (first use this function)
    error: (Each undeclared identifier is reported only once for each function it appears in.)
    error: `itsAge' undeclared (first use this function)
    error: expected `;' before ')' token
    error: expected primary-expression before ')' token
    error: `Cat::Cat(int)' and `Cat::Cat(int)' cannot be overloaded	
    error: `Cat::~Cat(int)' and `Cat::~Cat(int)' cannot be overloaded
    error: expected `,' or `;' at end of input
    error: expected `}' at end of input
    error: expected unqualified-id at end of input
    

    Ich schätze es hat irgendwie was mit den public und private Elementen zu tun. Könnt ihr mir helfen? (Ich bin blutiger Anfänger was C++ angeht :p )



  • semikolon fehlt hinter der klasse.

    und nimm am besten die neuen header:

    #include <iostream>
    using namespace std;

    statt

    iostream.h



  • hmmm... nach den von dir vorgeschlagenen Veränderungen (Semikolon, neuere Header ,ja ich habe std:: vorgefügt 😛 ) sind es leider immer noch die selben Fehler...



  • void SetAge(int newAge) {
    		itsAge = newAge;
    	)//<-- und dann noch den tippfehler verändern ;)
    


  • oh danke, daran lags. Ein Tippfehler zwischen zwei Zeichen, die sich gerade mal um einen Pixel unterscheiden 😉 .


Anmelden zum Antworten