lifeform.hwie Struktur in einer Klasse
class lifeform
{
public:
struct item;
void buyItem(item &a);
//code..
};
lifeform.cpp verwenden
struct lifeform::item
{
std::string type,name;
bool own;
int value,feature;
item(std::string _type,std::string _name,int _value,int _feature):type(_type), name(_name),value(_value),feature(_feature)
{
own=false;
}
};
lifeform::item lBoots("boots","Leather Boots",70,20);
void lifeform::buyItem(item &a)
{
if(a.own==0)
{
inventory.push_back(a);
a.own=1;
addGold(-a.value);
std::cout << "Added " << a.name << " to the inventory.";
if(a.type=="boots")
{
hp-=inventory[1].feature;
inventory[1]=a;
std::cout << " (HP + " << a.feature << ")\n";
maxHp+=a.feature;
hp+=a.feature;
}
}
gibt es keine Fehler so weit, aber wenn ich sie will wie diese
in main.cpp verwendenCompiler sagt mir [Error] 'lBoots' wurde in diesem Bereich nicht deklariert, aber ich erklärte es Klasse bin ich etwas fehlt?
Es kann relevant sein zu teilen, was 'IGauntlets' ist. –
Ich sehe keine Definition von 'lGauntlets'. Meinst du 'lBoots'? Und du musst * declare * in der Header-Datei oder keiner anderen [Übersetzungseinheit] (https://en.wikipedia.org/wiki/Translation_unit_ (Programmierung)) darüber wissen. –
@RedPotato Denken Sie daran, dass 'struct' und' class' in C++ wirklich dasselbe sind. Der einzige Unterschied besteht darin, dass die Standardzugriffsebene von struct öffentlich ist, daher sind Vererbung und Mitglied standardmäßig öffentlich, während die Standardstufe der Klasse privat ist. Abgesehen davon gibt es keinen Unterschied. –