Ich weiß, was dieser Fehler ist, und was es bedeutet, aber für das Leben von mir kann ich das Problem nicht finden. (. Ich bin an einem Spiel arbeiten, die für das Kreieren von modularen Geräten ermöglicht, und das ist, wo der Zusammenbruch geschieht)C++ LNK2019 Fehler, ungelöste externe Zeichen
zum besten meines Wissens habe ich:
-Ich alles inklusive der # beinhaltet, dass ich brauche.
-Ich meine Funktionen überprüft, um sicherzustellen, sie haben Definitionen
-Ich sicher, dass alles gemacht wird quadriert weg mit, wie die Klassen kommunizieren
hier ist ein Teil des Codes (ich habe 21 Item-Typen jetzt, also werde ich nur ein paar Stücke verwenden):
// Dies ist nur ein Teil dieser Funktion, aber es ist nur das gleiche Ding den ganzen Weg hinunter. Hier scheint der Zusammenbruch zu geschehen.
void Inventory::chooseItem(int tag)
{
switch (tag)
{
//armor
case '1':
addArmorBack(makeNewArmor1(holder.back()));
break;
case '2':
addArmorBreastplate(makeNewArmor2(holder.back()));
break;
case '3':
addArmorStraps(makeNewArmor3(holder.back()));
break;
// Die relevanten Daten Halter im privaten Bereich des .h:
vector<ItemPart> holder;
ArmorBack makeNewArmor1(ItemPart held);
ArmorBreastplate makeNewArmor2(ItemPart held);
ArmorStraps makeNewArmor3(ItemPart held);
// Artikel Teillisten
vector<ArmorBack> armorBackList;
vector<ArmorBreastplate> armorBreastplateList;
vector<ArmorStraps> armorStrapsList;
// Dies ist ein Beispiel der Funktionen Ich verwende, um Dinge zu meiner Liste hinzuzufügen. Es ist die gleiche Funktion für jeden Gegenstand.
void Inventory::addArmorBack(ArmorBack makeNew)
{
string name;
armorBackList.push_back(makeNew);
name = makeNew.getName();
addItem(name);
}
// die ItemPart Klasse BEKOMMT Daten, dann andere Funktionen leiten die Daten an den richtigen Artikel Teil des Tag-int mit:
class ItemPart
{
public:
ItemPart(int attack, int defense, int health, int experienceMult, int tag, string name);
//setters
void setName();
//getters
int getDefense();
int getAttack();
int getHealth();
int getExperienceMult();
int getTag();
string getName();
private:
string _name;
int _defense;
int _attack;
int _health;
int _experienceMult;
int _tag;
};
// schließlich die relevanten Artikel Klasse recieves die Daten:
ArmorBack::ArmorBack(ItemPart crafted)
{
_attack = crafted.getAttack();
_defense = crafted.getDefense();
_health = crafted.getHealth();
_experienceMult = crafted.getExperienceMult();
_tag = crafted.getTag();
_name = crafted.getName();
}
edit: hier ist der Fehlertext. Ich habe eine davon für jeden Elementtyp, den ich implementiert habe:
Fehler 37 Fehler LNK2019: ungelöst externes Symbol "private: Klasse ArmorBack __thiscall Inventar :: makeNewArmor1 (Klasse ItemPart)" (? MakeNewArmor1 @ Inventory @ AAE? AVArmorBack @@ VItemPart @@@ Z) referenziert in der Funktion "public: void __thiscall Inventar :: choiceItem (int)" (? WähleItem @ Inventar @@ QAEXH @ Z) C: \ Benutzer \ Forresto \ Dokumente \ Visual Studio 2012 \ Projekte \ Spiel Herausforderung ascii \ Spiel Herausforderung ascii \ Inventory.obj Spiel Herausforderung ascii
Obwohl dies mit einem Linker Fehler nichts zu tun hat: 'case '1':' Hast du wirklich '1' gemeint und nicht nur 1 – drescherjm
Kannst du den vollständigen Text der Fehlermeldung? Kopieren Sie es aus dem Ausgabefenster (Alt-2). – drescherjm
Ja, jeder Teil hat ein nummeriertes Tag, mit dem ich definiere, welchen Teil die jeweilige ItemPart-Verwendung darstellen soll – forresto