私のインターフェイスのクラスなどの概要!C++:エラーLNK:仮想関数の結果である未解決の外部シンボル
Animal.H:
class Animal
{
public:
virtual void walk();
}
Animals.CPP
= EMPTY
Cow.H:
class Cow : public Animal
{
public:
virtual void walk();
}
これは、右から派生したクラスから歩行を取っていることを外的に知るべきですか? (e.a.Animal ..)私は関数の歩行を定義wouldnt、それは私はそれを右に定義する必要があります言う必要があります...?
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();
}
}
ティ私は、名前空間、 "クラス:: ..."のことを意味しますか?インターフェイスを継承して使用する方法は?
私は、すべての仮想関数は、私に次のエラーを与え、私はインターフェイスから作られたすべての関数を取得このようなので:
SomeOtherClass.obj : error LNK2019: unresolved external symbol "public: virtual void __thiscall Cow::Walk (...etc etc...) referenced in function "void __cdecl SomeNamespace::LetAnimalWalk() (...etc etc...)
は、私はほとんど見つける何をすべきか、私が間違ってやっている誰もが知っていますあなたは、その関数を定義するか確認する必要があり、それは私が、関数の右(Cow.cppでどこかを??)宣言していませんでした手段は、事前みんなで
おかげ
'myCow.Walk();はtypoですか?この関数は 'walk()'(小文字)と呼ばれます –
ああ、typoなのです。私はここで手作業で入力しました。本当のクラスは難しいですが、stackoverflowにはあまりにも多すぎると思います。 ! –
@AndyProwlあなたは同じような質問で、昨日も私を助けようとしました。もっと具体的なAndy ..私は答えましたが、あなたがそれを読んだとは思いません...私の他の投稿は:http://stackoverflow.com/質問/ 15226986/c-lnk-error-2019-unresolved-external-symbol-virtual-errors-of-an-inter#コメント21465084_15226986 –