2014-04-26 3 views
0

비슷한 문제가있는 사람들을 많이 보았습니다. 그러나 본 솔루션은 내 문제를 해결하지 못했기 때문에 다른 사람들이 내 문제를보고 문제를 해결하거나 적어도 나를 어딘가로 안내 할 수 있기를 바랍니다. 그것을 설명 할 수 있습니다. 여기 vtable에 대한 정의되지 않은 참조는 어떻게 수정합니까?

은 (파괴되어 적어도 일부) 내 코드입니다 :
#include "B.h" 
#include "C.h" 

enum myEnum foo(C* c) 
{ 
    // do things 
    return SOMEVALUE; 
} 

B.cpp

BH

#include "A.h" 

#ifndef B_H 
#define B_H 

class RuleConway : public A 
{ 
    public: 
     enum myEnum foo(C* c); 
}; 

#endif // B_H 

#ifndef A_H 
#define A_H 

enum myEnum {SOMEVALUE, OTHERVALUE}; 
class C; 

class A 
{ 
    public: 
     virtual enum myEnum foo(C* c) = 0; 
}; 

#endif // A_H 

I 내 프로젝트를 컴파일하려고하면, 나는 이것을 얻는다 :

B에 대한`vtable에 '

사람이 내가이 오류가 발생하거나 해결 방법을하는거야 이유를 알고 있는가에

정의되지 않은 참조?

+0

http://stackoverflow.com/a/12574407/673730보기 - 일반적인 실수는 이름을 한정 잊고 –

답변

3

B.cpp에서 enum myEnum RuleConway::foo(C* c)과 같은 기능을 구현해야합니다. 당신이 지금하고있는 방식은 의 멤버 함수가 아니라 B.cpp에 foo이라는 함수를 정의하는 것입니다. B.cpp에서

0

당신은 무엇을해야

enum myEnum RuleConway::foo(C* c)