Frage zu Vererbung von Klassen C++
-
Hey,
ich sitze momentan an einem kleinen Programm. Im Programm geht es um Vererbung bei Klassen (C++)
Ich will noch versuchen, dass der Compiler health, mana und das level der 2 Klassen anzeigt und noch wieviel Schaden die einzelnen Zauber machen. Ich habe da einige Schwierigkeiten. Ich will noch versuchen dem Troll und dem Monster zwei verschiedene Namen zu geben. Aber wie macht man das genau ?
Ich habe für jede Klasse eine .h und eine .cpp Datei erstellt. Hier die jetzigen Codes:
#ifndef MONSTER_H #define MONSTER_H class Monster { protected: int health; int mana; int level; int schaden; public: Monster(); void Angriff(); void Zauber(); }; #endiftroll.h #ifndef TROLL_H #define TROLL_H #include "Monster.h" class Troll: public Monster { public: Troll(); void Angriff(); void Kraftbiss(); }; #endifMonster.cpp #include <iostream> #include "Monster.h" using namespace std; Monster::Monster() { health = 100; mana = 1000; level = 1; } void Monster::Angriff() { cout << "Monster startet einen Angriff " << endl; } void Monster::Zauber() { cout << "Monster benutzt einen Zauber " << endl; }troll.cpp #include <iostream> #include "Troll.h" using namespace std; Troll::Troll() { health; mana; level; } void Troll::Angriff() { cout << "Troll startet einen starken Angriff" << endl; } void Troll::Kraftbiss() { cout << "Troll benutzt Kraftbiss" << endl; }main.cpp #include <iostream> #include "Troll.h" using namespace std; int main() { int tmp; Monster monster; Troll troll; monster.Angriff(); monster.Zauber(); troll.Angriff(); troll.Kraftbiss(); cin >> tmp; return 0; }Das sind die Codes .. und naja . Wisst ihr wie ich das einbauen könnte ? Ich habe es versucht, bei mir wird jedoch ein Fehler angezeigt.
Falls es wichtig ist, ich programmiere erst seit kurzer zeit. Gucke mir Tutorials an um voran zu kommen.
Danke fürs Lesen
Actonus

-
Sag doch bitte, was der Fehler ist. Dann ersparst du uns, das wir das ganze Programm zu uns kopieren, speichern und übersetzen müssen.
Was auffällt ist, dass du im Trollkonstruktor keine Werte setzt. Die ganzen Ausdrücke dort machen derzeit gar nichts. Letztendlich wird aber natürlich zuvor der Monsterkonstruktor aufgerufen, der schon feste Werte setzt, aber ich vermute trotzdem, dass hier nicht passiert, was du beabsichtigst.
Das ist der einzige "Fehler" den ich beim Querlesen sehe. Für genauere Antworten musst du genauere Fragen stellen.
-
Also ich kann jetzt nicht auf irgentein Problem verweisen, aber ich würde dir empfehlen, Funktionen wie Angriff() als virtual zu deklarieren. So ist, wenn das Projekt größer wird, gewährleistet, dass es egal welches Monster gerade aktiv ist, immer der Angriff durchgeführt wird.
Außerdem finde ich, dass das mehr mit C++ Synthax als mit Spiele/Grafikprogrammierung zu tun hat...
-
Dieser Thread wurde von Moderator/in rapso aus dem Forum Spiele-/Grafikprogrammierung in das Forum C++ (auch C++0x und C++11) verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.