2013-04-20 2 views
1

나는 뱀과 사다리 게임을 쓰고 있어요 내가 같이 draw_snake라는 함수를 정의는 다음과 같습니다정의되지 않은 참조가 제 기능을 위해 추가 매개 변수를 보여주고, GTKMM C++

void draw_snake(const Cairo::RefPtr<Cairo::Context>& cr, 
       std::pair<int,int> snake, 
       std::vector< std::pair<int,int> > boardcoords); 

것은 내가 이것에 전화를 걸 때 나는 그것을 할 기능은 다음과 같습니다

pair<int, int> snake = make_pair(100,1); 
draw_snake(cr, snake, boardcoords); 

boardcoordspair<int,int>의 벡터이다. 오류 메시지는 함수를 호출 할 때 네 번째 매개 변수가 있다고 말합니다. 오류 메시지는 다음과 같습니다.

myarea.cc:(.text+0x7db): undefined reference to `MyArea::draw_snake(Cairo::RefPtr<Cairo::Context> const&, std::pair<int, int>, std::vector<std::pair<int, int>, std::allocator<std::pair<int, int> > >)' 

어디에서이 할당자가 있습니까?

답변

3

오류가 잘못 표시됩니다. 이 함수에는 세 개의 매개 변수가 있습니다.

undefined reference to `MyArea::draw_snake(
     Cairo::RefPtr<Cairo::Context> const&, 
     std::pair<int, int>, 
     std::vector<std::pair<int, int>, std::allocator<std::pair<int, int> > > 
//    ^The vector's parameters are contained in these brackets^
     ) 

std::vector has a default "allocator" parameter. 지정하지 않은 경우에도 존재합니다.

오류는 사용자가 선언 한 정확한 기능이 정의되지 않았기 때문에 발생합니다.