Problem bei einem dynamischen Objekt



  • #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    
    class Medium
    {
          private:
                  int signatur;
                  string titel;
                  string status;
          public:
                 Medium();
                 ~Medium();
                 void setSignatur(int signatur)
                 {
                      this->signatur=signatur;
                 }
    
                 void setTitel(string titel)
                 {
                      this->titel=titel;
                 }
    
    };
    
    int main(int argc, char *argv[])
    {
        char eingabe;
        Medium *p;
    
        do{ 
             cout<<endl<<endl<<"Anlegen eines Mediums.............(m)"<<endl;
             cout<<"Anzeige der Medieneigenschaften...(l)"<<endl;
             cout<<"Das letzte Medium entleihen.......(e)"<<endl;
             cout<<"Rueckgabe des letzten Mediums.....(r)"<<endl;
             cout<<"Programmende......................(q)"<<endl;
             cout<<"Ihre eingabe:";
             cin>>eingabe;
    
             switch(eingabe)
             {
                    case 'm':
    
                            p=new Medium;
                    break;
    
                    case 'l':
                    break;
    
                    case 'e':
                    break;
    
                    case 'r':
                    break;
    
                    case 'q':
                    break;
    
                    default:
                            cout<<endl<<"FALSCHE EINGABE!"<<endl<<endl;       
    
             }
        }while(eingabe!='q');
    
        return EXIT_SUCCESS;
    }
    

    fehler in Dev++

    [Linker error] undefined reference to `Medium::Medium()'

    das mag er irgednwie nicht p=new Medium; 😕 😕 wisst ihr was
    ich falsch gemacht habe



  • Hallo

    Es reicht nicht Methoden nur zu deklarieren du must sie auch implementieren. In diesem Fall ist der Konstruktor von Medium gemeint.

    bis bald
    akari



  • Du hast den Konstruktor deklariert, aber nicht definiert.

    class Medium
    {
          private:
                  int signatur;
                  string titel;
                  string status;
          public:
                 Medium(){}
                 ~Medium(){}
                 void setSignatur(int signatur)
                 {
                      this->signatur=signatur;
                 }
    
                 void setTitel(string titel)
                 {
                      this->titel=titel;
                 }
    
    };
    

    Wobei, wenn du sie nicht implementierst, dann solltest du einfach den default stehen lassen, oder private machen..

    EDIT:
    zu langsam.. 😞



  • danke leute es geht jetzt
    was für ein kack fehler 😉 😃


Anmelden zum Antworten