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
