최근에 고전 뱀 게임의 리메이크를 다시 시도했습니다. 이번에는 뱀의 꼬리에 연결된 목록 대신에 deque를 사용했습니다. 꼬리 부분을 만들고 양키 앞쪽에 놓고 이상한 오류가 발생하도록하십시오. 내가 C로 여전히 매우 새로운 오전부터C++ : std :: deque 호출에 대한 일치 함수가 없습니다. <SnakePart> :: emplace_front
no matching function for call to 'std::deque<SnakePart>::emplace_front(<brace-enclosed initializer list>)'|
는 ++ 나는 왜이 오류가 발생하는 등의 단서입니다. 누군가가 내가이 수수께끼를 푸는 것을 도울 수 있으면 고맙겠습니다.
SnakePart.cpp
http://pastebin.com/verR9bpn
Snake.h
http://pastebin.com/XUyNAVKK
완료 및 검증 가능한 최소한의 예 :
#include <deque>
struct Test {
Test(int x, int y) : x(x), y(y){}
int x;
int y;
};
int main() {
int x = 4, y = 5;
std::deque<Test> tester;
tester.emplace_front({x, y});
return 0;
}
SnakePart.cpp
#include "Snake.h"
#include <deque>
void SnakePart::advance(int x, int y, bool loose_tail = true) {
parts.emplace_front({x, y});
if(loose_tail)
parts.pop_back();
}
Snake.h는
#ifndef SNAKE_H_INCLUDED
#define SNAKE_H_INCLUDED
#include <deque>
class SnakeHead {
private:
int posX, posY;
// Snake head functions
void input();
void movement();
};
class SnakePart {
private:
std::deque<SnakePart> parts;
void advance(int x, int y, bool loose_tail);
};
#endif // SNAKE_H_INCLUDED
, 소스에 대한 링크를 게시하지 마십시오 복사 - 붙여 넣기를 할 수 그것은 또한 의미 복사 생성자가
를 사용할 수 있음을 의미 두
int
인수를 복용 생성자가 문제의 본문에 직접 들어가는 출처. [좋은 질문을하는 방법에 대해 읽어보십시오] (http://stackoverflow.com/help/how-to-ask) (또한 [최소, 완전하며 검증 가능한 예제] (http : // stackoverflow.com/help/mcve)). –@ JoachimPileborg 질문에 코드를 추가하겠습니다. –