Programm mit Vererbung bringt Fehlermeldung



  • Hallo Community!

    Ich soll ein einfaches Programm zur Vererbung schreiben, nur leider sagt mir die Fehlermeldung

    Aufgabe32.cpp: In function âint main()â:
    Aufgabe32.cpp:65: error: invalid conversion from âintâ to âconst charâ
    Aufgabe32.cpp:65: error: initializing argument 1 of âstd::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT
    , const _Alloc&) [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>]â
    Aufgabe32.cpp:66: error: invalid conversion from âintâ to âconst charâ
    Aufgabe32.cpp:66: error: initializing argument 1 of âstd::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT
    , const _Alloc&) [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>]â

    nichts.

    Hier mal das Programm

    #include <iostream>
    #include <string>

    using namespace std;

    class Person{ // Oberklasse
    private:
    string vorname;
    string nachname;
    public:
    Person(string Vorname,string Nachname):vorname(Vorname),nachname(Nachname){}
    string get_vorname(){return vorname;}
    string get_nachname(){return nachname;}
    };

    class Klinikmitarbeiter{ // Oberklasse
    private:
    string personalnummer;
    public:
    Klinikmitarbeiter(string Personalnummer)
    :personalnummer(Personalnummer){}
    string get_personalnummer(){return personalnummer;}
    };

    class Patient: public Person {
    private:
    string krankenkasse;
    int patientennummer;

    public:
    Patient(string Vorname, string Nachname,string k, int p)
    :Person(Vorname,Nachname),krankenkasse(k),patientennummer(p){}
    };

    class Arzt: public Person, public Klinikmitarbeiter {
    private:
    string fachgebiet;

    public:
    Arzt(string Vorname,string Nachname,string Personalnummer,string f)
    :Person(Vorname,Nachname),Klinikmitarbeiter(Personalnummer),fachgebiet(f) {}
    };

    class Pfleger: public Person, public Klinikmitarbeiter{
    private:
    string station;

    public:
    Pfleger(string Vorname, string Nachname, string Personalnummer,string s)
    :Person(Vorname,Nachname),Klinikmitarbeiter(Personalnummer),station(s){}
    };

    int main() {

    Patient pa("Meike", "Muster","AOK",535353); // Zeile 63
    Person pe(pa); // Zeile 64
    Arzt a("John", "Dorian", 12345, "Allgemeinmediziner"); // Zeile 65
    Pfleger pf("Peter", "Paulsen", 54321, "A1"); // Zeile 66
    Klinikmitarbeiter m(pf); // Zeile 67

    // cout << pa << pe << a << pf << m << endl; // Zeile 69

    return 0;
    }

    Wäre für Hilfe sehr dankbar.:-)

    Caro



  • sorry das da nichts eingerückt ist, habs erst zu spät bemerkt



  • Du kannst deinen Beitrag editieren. Verwende auch die

    ...
    

    Tags.


  • Mod

    Der Konstruktor zu Arzt sieht so aus:

    Arzt(string Vorname,string Nachname,string Personalnummer,string f)
    

    Du machst aber:

    Arzt a("John", "Dorian", 12345, "Allgemeinmediziner");
    

    Du meinst wohl:

    Arzt a("John", "Dorian", "12345", "Allgemeinmediziner");
    

    Übrigens sehr löblich, dass du einen string für die Personalnummer genommen hast, viele Anfänger hätten da fälschlicherweise zu einem Zahlentyp gegriffen 👍



  • Super danke!!Anhand der Fehlermeldung hätt ich das nie entdeckt. Super jetzt isse weg


Anmelden zum Antworten