#pragma once #include<vector> using namespace std; #include"Food.h" class Snake { public: Snake(); void moveSnakeByDirection(); vector getvector(); private: std::vector<std::vector<int>> body; // 存储蛇身位置 int snakelength; // 蛇身长度 int movedirection; // 蛇的方向 //1:上 3:左 //2:下; 4:右 int snaketail_x;//蛇尾的坐标值 int snaketail_y; int Head_x;//蛇头的坐标值 int Head_y; };严重性 代码 说明 项目 文件 行 禁止显示状态 错误(活动) E0441 缺少 类模板 "std::vector" 的参数列表 贪吃蛇2 F:\大一下\实训\贪吃蛇\贪吃蛇2\Snake.h 10给出解决代码
时间: 2024-03-18 16:39:50 浏览: 61
C语言头文件避免重复包含、#pragma once和#ifndef区别
解决方法是在 `Snake` 类中将 `vector` 声明改为 `std::vector`,并为其指定模板参数类型。修改后的代码如下:
```
#pragma once
#include <vector>
#include "Food.h"
class Snake {
public:
Snake();
void moveSnakeByDirection();
std::vector<std::vector<int>> getvector();
private:
std::vector<std::vector<int>> body; // 存储蛇身位置
int snakelength; // 蛇身长度
int movedirection; // 蛇的方向
//1:上 3:左
//2:下; 4:右
int snaketail_x;//蛇尾的坐标值
int snaketail_y;
int Head_x;//蛇头的坐标值
int Head_y;
};
```
同时,也需要在 `getvector` 函数的返回类型中为 `std::vector` 指定模板参数类型,例如 `std::vector<std::vector<int>>`。
阅读全文