Problem bei Klassenprogrammierung



  • Hallo,

    Gegeben sei folgende Dateien :

    - Klassenheader "human.h"
    - Klasse "human.cpp"
    - Datei "humanMain.cpp"
    - Klassenheader "Delta.h"
    - Klasse "Delta.cpp"

    In "human.h" ist ein Object "human" definiert worden
    (entsprechender Objekt- und FunktionenRumpf in "human.cpp").

    In "Delta.cpp" habe ich eine Funktion "void human::atmen(){...}"
    geschrrieben (in "Delta.h" nur die Zeile "void atmen();" ).

    Der Compiler meckert nicht.

    Nun schreibe ich in "Delta.cpp" eine Funktion "void human::schlafen(){..}"
    (in "Delta.h" nur die Zeile "void schlafen();"),
    diesmal meckert aber der Compiler mit der Fehlermeldung

    "error: no `void human::schlafen()' member function declared in class `human'"

    Wieso gibt es bei der Funktion "schlafen()" eine Fehlermeldung, bei der Funktion "atmen()" jedoch nichts .. ??

    VIELEN DANK im Voraus

    PS: Wie sieht die PotenzFunktion in C++ aus, wenn die Parameter
    das Format lond double, und nicht double haben ??



  • weil die human.h wahrscheinlich eine memberfkt namens atmen beinhaltet, aber keine schlafen

    du kannst in der delta.h ruhig atmen() hinschreiben, dies hat dann aber nichts mit der delta.cpp human::atmen() zu tun ( stichwort namespace )

    also schreibst du am besten in die human.h auch ein schlafen und gut ist.

    soviel zu deinem prob.

    aber warum schreibst du die sachen nicht alle in die human.cpp wo sie auch räumlich hingehören??? code zu memberfkt. sollten nicht auf zig dateien verteilt werden.



  • Das Problem ist gelöst.
    Habe die Datei human.h nicht berücksichtigt ..

    Jedoch möchte ich immer noch wissen, wie ich in C++ eine
    Potenz x hoch y ausrechnen lassen kann, wenn sowohl x als auch
    y vom Datentyp long double (und nicht "nur" double) sind ?


Anmelden zum Antworten