Ich versuche, eine Kampfsequenz zu machen. Momentan entwickle ich nur Prototypen.C++: Werte zuweisen Daten Mitglieder eines Objekts innerhalb einer Klasse
Was ich tun möchte, ist eine Funktion für die Kampfsequenz in einer Klasse zu definieren und verschiedene Monster zu initialisieren, mit denen zu kämpfen ist. Ich habe eine Datenstruktur in der .h-Datei mit dem Namen 'Monster' erstellt. Ich initialisiere dann den Monstertiger innerhalb der Klasse. Aber wenn ich in mein cpp gehe, um seinen Ton und sein Bild zu geben, stoße ich auf Fehler.
Was ich will, letztlich zu tun ist:
#include <iostream>
#include "CombatSeq.h"
int main() {
// Initiate Combat with a Tiger.
CombatSeq c;
c.fight(c.tiger);
}
Hier ist mein Code:
Die H-Datei:
#ifndef SOURCE2_COMBATSEQ_H_
#define SOURCE2_COMBATSEQ_H_
#include <iostream>
struct monster {
std::string sound;
std::string picture;
};
class CombatSeq {
public:
void fight(monster t);
monster tiger;
private:
};
#endif /* SOURCE2_COMBATSEQ_H_ */
Die CPP-Datei:
#include "CombatSeq.h"
#include <iostream>
void CombatSeq::fight (monster t) {
std::cout << t.picture;
std::cout << t.sound;
}
// What would I put here to give tiger.sound & tiger.picture values?
// I have tried:
monster CombatSeq::tiger;
CombatSeq::tiger.sound = "tiger.ogg";
// But to no avail.
Vielen Dank für Ihre Hilfe!
Der Grund, ich möchte Tiger in CombatSeq (oder einer anderen Klasse) ist einfach organisiert werden. Ich möchte alle meine Monster an einen Ort laden, damit sie in verschiedenen Klassen verwendet werden können. Könnte ich vielleicht eine neue Klasse mit all meinen Monstern machen? – clorxwetwipe
Eine sinnvolle Option besteht darin, sie alle zu statischen Mitgliedern der Klasse zu machen. Wie Sie es jetzt haben, wird jede Instanz von CombatSeq eigene Kopien von Tiger haben. Dies hat natürlich eine eigene Syntax und eigene Probleme, die ich Ihnen gegenüber anderen Optionen abwägen werde. – Jfevold
Das ist nicht was ich suche. Ich denke, der beste Weg, dies zu formulieren, ist: Warum kann ich ein neues Monsterobjekt (Monstertiger) initialisieren, aber kann seinen Mitgliedern keine Werte zuweisen (Tiger.picture, Tiger.sound, etc.)? – clorxwetwipe