내 인터페이스의 클래스 등 개요!C++ : 오류 LNK : 가상 함수로 인해 생성 된 확인되지 않은 외부 기호
Animal.H :
class Animal
{
public:
virtual void walk();
}
Animals.CPP
= EMPTY
Cow.H :
class Cow : public Animal
{
public:
virtual void walk();
}
,
여기에서 오른쪽에서 파생 된 클래스에서 walk가 취해 졌음을 외부에서 알아야합니까? (e.a. Animal ..) 내가 walknt 함수를 정의 할 때, 나는 그것을 올바르게 정의해야한다고 말할 것입니다 ...?
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();
}
}
티 s는 올바르게 작동해야합니까? ... 내 말은, 네임 스페이스, "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에서 ??) 사전들에서감사를 선언하지 않은 한 의미입니다
'myCow.Walk();는 오타가 있습니까? 이 함수는'walk()'라고 불린다. (소문자) –
오, 그렇다. Typo .. 나는이 모든 것을 손으로 여기에 입력했다. 실제 클래스는 어려운 것이지만, stackoverflow에 대해서 너무 구체적 일 것이라고 생각했다. .! –
@AndyProwl 어제도 좀 더 구체적이었던 같은 질문에 어제 나를 도왔다. Andy .. 나는 대답했다. 그러나 당신이 그것을 읽었다 고 생각하지는 않는다. 내 다른 게시물은 : http://stackoverflow.com/ 질문/15226986/c-lnk-error-2019-unresolved-external-symbol-virtual-errors-of-an-inter #로 인해 comment21465084_15226986 –