Konstruktoren Vererbung

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Konstruktoren Vererbung

    Hallo Coder Freunde !
    Ich schon wieder

    brauche eure hilfe bei einer kleinen Verständinss Aufgabe

    Quellcode

    1. class F
    2. {
    3. public:
    4. float d;
    5. F(float _x) { d = _x; }
    6. };
    7. class K : public F
    8. {
    9. public:
    10. int i;
    11. K(int _k) { i = _k; }
    12. };
    13. int main()
    14. {
    15. K a(3);
    16. return 0;
    17. }
    Alles anzeigen


    Die frage ist hier wo ist der Fehler ?

    Also der Fehler ist meiner Meinung nach das der Aufruf des Konstruktors K() das selbe ist wie F() bzw. beim Aufruf des Konstruktors K() wird der Konstruktor F() aufgerufen da F() vererbt wird ist das richtig ?
    Das Problem ist dann das F() einen float erwartet K() jedoch einen int reinschreibt ?

    Jetzt ist nur die Frage warum funktioniert es auch nicht wenn ich einen Zweiten Konstruktor in F() implementiere also den Konstrukor überlade ?
    Der Compiler gibt übrigens als Fehlermeldung aus "F Kein geeigneter Standartkonstruktor verfügbar" was ja eigentlich zu meiner Vermutung passt oder ?

    Danke schon im Vorraus für eure Hilfe