Ich möchte ein bestimmtes Objekt in einer Klasse in C++ bekommen. Ich habe mehrere Seiten betrachtet und es scheint, dass meine Frage einzigartig ist. Okay, hier ist mein Code.C++ Wie bekomme ich ein spezifisches Objekt in einer Klasse
In House.h
#include <string>
using namespace std;
class House
{
string Name;
int Health;
public:
House(string a, int h);
void GetHouseStats();
void DamageHouse(int d);
~House();
};
in House.cpp
#include "House.h"
#include <iostream>
House::House(string a, int h)
{
Name = a;
Health = h;
}
void House::DamageHouse(int d) {
Health -= d;
cout << "Your " << Name << " has " << Health << " left."<<endl;
}
void House::GetHouseStats() {
cout << Name<<endl;
cout << Health;
}
House::~House()
{
}
in Source.cpp
#include <iostream>
#include "House.h"
using namespace std;
int main()
{
House Kubo("Bahay Kubo", 2);
Kubo.DamageHouse(1);
}
Ich habe Haus Kubo als mein erstes Ziel. Ich möchte die Häuser der Person in eine Datei speichern, aber mein Problem ist Wie kann ich den Namen des Objekts in die Funktion übergeben, damit seine Daten in einer Datei speichern? Ich kann manuell die Kubo platzieren und so als
PlayerHouse = Kubo.Name;
Aber was tun, wenn ich nicht weiß, welches Haus soll ich sparen? Wie anstelle von
PlayerHouse = Apartment.Name;//2nd house
PlayerHouse = Modern.Name;//3rd house
Kann ich ein Funktionsargument verwenden, um den Namen des Objekts in PlayerHouse zu platzieren? Wie dies
void SetHouseName(type object){
PlayerHouse = object.Name;
}
Eh, sicher eigentlich nicht erwähnt wird funktionieren, wenn OP über den Namen Objekt im Gespräch oder dem 'Name' Mitglied der Klasse 'Haus', meh. –
Tbh Ich möchte nicht, dass irgendwelche Objekte meiner Klasse öffentliche Variablen haben, weil dann irgendwo im Skript einige meiner Funktionen die Variablen versehentlich bearbeiten können. – CraftedGaming
Dann holen Sie sich einfach eine 'GetName() const' Methode. –