Finde den Fehler nicht...



  • Hallo Zusammen,

    ich finde den Fehler einfach nicht. Thema ist Vererbung.

    TArtikel.h
    class TArtikel                 //Basisklasse
    {
       private:
          char * name;
          long nummer;
          int anzahl;
    
       public:
          TArtikel (char * neuname, long neunummer, int neuanzahl); //Konstruktor
          char * getname (void);
          void setname (char * neuname);
          long getnummer (void);
          void setnummer (long neunummer);
          int getanzahl (void);
          void setanzahl (int neuanzahl);
    
          void print (void);
    };
    
    TArtikel.cpp
    
    #include "TArtikel.h"
    TArtikel::TArtikel (char * neuname, long neunummer, int neuanzahl) //Konstruktor
    {
       setname (neuname);
       setnummer (neunummer);
       setanzahl (neuanzahl);
    }
    char * TArtikel::getname (void)
    {
       return name;
    }
    void TArtikel::setname (char * neuname)
    {
       * name = * neuname;
    }
    long TArtikel::getnummer (void)
    {
       return nummer;
    }
    void TArtikel::setnummer (long neunummer)
    {
       nummer = neunummer;
    }
    int TArtikel::getanzahl (void)
    {
       return anzahl;
    }
    void TArtikel::setanzahl (int neuanzahl)
    {
       if (neuanzahl > 0)
          anzahl = neuanzahl;
       else
          anzahl = 0;
    }
    void TArtikel::print (void)
    {
       cout << "-----------------------------------------------------------";
       cout <<"Artikel-Name:      "  <<getname()   <<"\n";
       cout <<"Artikel-Nummer:    "  <<getnummer() <<"\n";
       cout <<"Artikel-Anzahl:    "  <<getanzahl() <<"\n";
    }
    
    TElektro.h
    
    #include "TArtikel.h"
    #ifndef TElektroH
    #define TElektroH
    
    class  TElektro : public TArtikel
    {
       private:
          float volt;
          float watt;
       public:
          TElektro (char * neuname, long neunummer, int neuanzahl, float neuvolt,
                    float neuwatt);
          float getvolt (void);
          void setvolt (float neuvolt);
          float getwatt (void);
          void setwatt (float neuwatt);
    
          void print (void);
    };
    
    TElektro.cpp
    
    #include "TElektro.h"
    
    TElektro::TElektro (char * neuname, long neunummer, int neuanzahl, float neuvolt,
                        float neuwatt);
            :TArtikel (neuname, neunummer, neuanzahl)
    {
       setvolt(neuvolt);
       setwatt(neuwatt);
    }
    float TElektro::getvolt (void)
    {
       return volt;
    }
    void TElektro::setvolt (float neuvolt)
    {
       if (neuvolt > 0)
          volt = neuvolt;
       else
          volt = 0;
    }
    float TElektro::getwatt (void)
    {
       return watt;
    }
    void TElektro::setwatt (float neuwatt)
    {
       if (neuwatt > 0)
          watt = neuwatt;
       else
          watt = 0;
    }
    void TElektro::print (void)
    {
       TArtikel::print();
    
       cout <<"Spannung (Volt):   " << getvolt() <<"\n";
       cout <<"Verbrauch (Watt):  " << getwatt () <<"\n";
    }
    

    Der Compiler (C++ Builder 5) gibt immer folgende Fehler meldung beim Compilieren:

    [C++ Fehler] TElektro.cpp(18): E2333 Klassenelement 'TElektro::TElektro(char *,long,int,float,float)' ist außerhalb der Klasse deklariert.
    [C++ Fehler] TElektro.cpp(19): E2040 Deklaration nicht ordnungsgemäß abgeschlossen

    Wo liegt der Fehler? Wahrscheinlich habe ich bloss irgendwo was kleines vergessen?

    [ Dieser Beitrag wurde am 30.03.2003 um 11:25 Uhr von Shitman editiert. ]

    [ Dieser Beitrag wurde am 30.03.2003 um 11:30 Uhr von Shitman editiert. ]



  • TElektro::TElektro (char * neuname, long neunummer, int neuanzahl, float neuvolt,
                        float neuwatt);  //Ohne das ;
            :TArtikel (neuname, neunummer, neuanzahl)
    

    🙂

    [ Dieser Beitrag wurde am 30.03.2003 um 11:31 Uhr von Kräuterkundestudent editiert. ]



  • Aaaaaahhhhhhrrrrrrgggggg !#?!###*"!!

    Ich hasse es 😡
    Immer dasselbe. Man schaut sooooo lange auf den Quelltext dass man sowas nicht sieht.

    Vielen vielen Dank 🙂


Anmelden zum Antworten