我的界面的类等概览!
Animal.H:
class Animal
{
public:
virtual void walk();
}
动物.CPP
=空
牛.H:
class Cow : public Animal
{
public:
virtual void walk();
}
在这里它应该自动知道函数 walk 是从它派生的类中获取的,对吗? (例如 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::...”之类的东西?以及我继承和使用界面的方式?
因为这样我得到了我从接口(interface)创建的每个函数,所以每个虚拟函数都会给我以下错误:
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 的某个地方??)
先谢谢大家
最佳答案
class Animal
{
public:
virtual void walk();
}
您需要定义该函数或使其成为纯虚拟的
class Animal
{
public:
virtual void walk() = 0;
}
关于C++:错误 LNK:无法解析的外部符号,由虚函数产生,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15273578/