修改指针指向的QVector内部成员的值
2017-11-29 13:50
218 查看
//在头文件声明
QVector<int>* _InitSnakeCor;
//构造函数内_InitSnakeCor初始化
QtGreedySnake::QtGreedySnake(QWidget *parent)
: QMainWindow(parent)
{
this->setWindowTitle(tr("贪吃蛇"));//设置窗口名称
this->setGeometry(600, 200, 700, 600);
//初始化贪吃蛇蛇头坐标容器,用容器_InitSnakeCor的第一个值表示x坐标,第二个值表示y坐标
_InitSnakeCor = new QVector<int>;
int initSnakeX = 15;
int initSnakeY = 10;
_InitSnakeCor->push_back(initSnakeX);
_InitSnakeCor->push_back(initSnakeY);
}
//成员函数内修改_InitSnakeCor指针容器特定位置的元素的值
void QtGreedySnake::snakeMove()
{
switch (_Direct)
{
case UP: (*_InitSnakeCor)[1] += 20 ;//这样的写法是正确的
case DOWN: (*_InitSnakeCor)[1] -= 20;
case RIGHT: _InitSnakeCor->at(0) += 20;//这样是错误的,无法被赋值的左值
case LEFT: _InitSnakeCor->at(0) -= 20;//
default:
break;
}
}
QVector<int>* _InitSnakeCor;
//构造函数内_InitSnakeCor初始化
QtGreedySnake::QtGreedySnake(QWidget *parent)
: QMainWindow(parent)
{
this->setWindowTitle(tr("贪吃蛇"));//设置窗口名称
this->setGeometry(600, 200, 700, 600);
//初始化贪吃蛇蛇头坐标容器,用容器_InitSnakeCor的第一个值表示x坐标,第二个值表示y坐标
_InitSnakeCor = new QVector<int>;
int initSnakeX = 15;
int initSnakeY = 10;
_InitSnakeCor->push_back(initSnakeX);
_InitSnakeCor->push_back(initSnakeY);
}
//成员函数内修改_InitSnakeCor指针容器特定位置的元素的值
void QtGreedySnake::snakeMove()
{
switch (_Direct)
{
case UP: (*_InitSnakeCor)[1] += 20 ;//这样的写法是正确的
case DOWN: (*_InitSnakeCor)[1] -= 20;
case RIGHT: _InitSnakeCor->at(0) += 20;//这样是错误的,无法被赋值的左值
case LEFT: _InitSnakeCor->at(0) -= 20;//
default:
break;
}
}
相关文章推荐
- C++里,在类中使用指向类成员函数的指针
- C++ 与“类”有关的注意事项总结(五):指向类成员的指针
- 第四周项目四 ——指向数组成员的指针(试用指针)
- 指向字符串的指针为何不能用来修改此字符串
- 指向类的非静态成员的指针
- 指向成员函数的指针并非指针
- Item 16. 指向成员函数的指针
- 对C++中指向类的非静态成员的指针的认识
- set不能通过指针元素指向的成员进行排序
- 针对上一篇指针问题详细说明(c++向函数传递指针并修改其指向的问题)
- 指向类成员的指针
- 指向类成员变量的指针int A:: * p
- c/c++向函数传递指针并修改其指向的问题
- 函数中修改指针的指向
- C++ 指向成员函数指针问题
- 函数调用缺少参数列表;请使用“&****Dlg::getThread”创建指向成员的指针”--多线程函数调用
- 关于字符串指针指向内容不能修改的问题
- C++中的回调函数——指向类成员的指针
- 改变javascript函数内部this指针指向的三种方法
- 【C++】学习笔记草稿版系列9(指向类成员的指针)