Übersicht der Klassen usw. meiner Schnittstelle!C++: Fehler LNK: nicht aufgelöstes externes Symbol, resultierend aus virtuellen Funktionen
Animal.H:
class Animal
{
public:
virtual void walk();
}
Animals.CPP
EMPTY =
Cow.H:
class Cow : public Animal
{
public:
virtual void walk();
}
Hier sollte es outomatisch wissen, dass die Funktion walk aus der Klasse genommen wird, von der sie abgeleitet ist, oder? (zB Tier ..) wenn ich den Funktionsweg nicht definieren würde, sollte er sagen, dass ich es richtig definieren sollte ...?
Cow.CPP:
void Cow::walk()
{
//do something specific for cow
}
SomeOtherClass.H
namespace SomeNamespace
{
void LetAnimalWalk();
}
SomeOtherClass.CPP
Cow myCow;
namespace SomeNamespace
{
void LetAnimalWalk()
{
myCow.walk();
}
}
Thi s sollte funktionieren? ... ich meine, der namespace, die "Class :: ..." sachen? und wie ich die Schnittstelle vererbe und benutze?
Weil diese Weise kann ich mit jeder Funktion bekomme ich von der Schnittstelle gemacht, so dass jede virtuelle Funktion mir die folgende Störung gibt:
SomeOtherClass.obj : error LNK2019: unresolved external symbol "public: virtual void __thiscall Cow::Walk (...etc etc...) referenced in function "void __cdecl SomeNamespace::LetAnimalWalk() (...etc etc...)
Weiß jemand, was ich falsch mache, was ich meistens finde ist, dass es bedeutet, dass ich erklärt habe (irgendwo in Cow.cpp ??)
Vielen Dank im Voraus Jungs eine Funktion direkt nicht
Ist 'myCow.Walk();' ein Tippfehler? Die Funktion heißt 'walk()' (Kleinbuchstaben) –
Oh ja, das ist ein Tippfehler ... Ich habe das hier nur von Hand eingegeben, die echte Klasse ist etwas schwierig, aber ich dachte, würde zu spezifisch für Stackoverflow werden. .! –
@AndyProwl Sie versucht, mir gestern auch zu helfen, auf der gleichen Art Frage, die spezifischer Andy war .. ich antwortete, aber denke nicht, dass Sie es gelesen haben ... mein anderer Posten war: http://StackOverflow.com/ Fragen/15226986/c-lnk-error-2019-ungelöst-external-symbol-virtual-errors-wegen-eines-inter # comment21465084_15226986 –