私のインターフェースのクラスなどの概要!
Animal.H:
class Animal
{
public:
virtual void walk();
}
Animals.CPP
=空
Cow.H:
class Cow : public Animal
{
public:
virtual void walk();
}
ここで、関数walkが派生したクラスから取得されていることを外見的に知る必要がありますか?(ea Animal ..)関数walkを定義しない場合、正しく定義する必要があると言う必要があります...?
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();
}
}
これは正しく機能するはずですか?...つまり、名前空間、「Class :: ...」のことですか?インターフェースを継承して使用する方法は?
このようにして、インターフェイスから作成したすべての関数を取得するため、すべての仮想関数で次のエラーが発生します。
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のどこか??)
よろしくお願いします