switch (canvas[i][j])严重性 代码 说明 项目 文件 行 禁止显示状态 错误(活动) E0142 表达式必须包含指向对象的指针类型,但它具有类型 "int" 贪吃蛇 F:\大一下\实训\贪吃蛇\贪吃蛇\print.cpp 10
时间: 2023-07-25 19:33:57 浏览: 166
这个错误提示是因为`switch`语句中的表达式应该是一个指向对象的指针类型,但是在你的代码中,`canvas[i][j]`是一个`int`类型的值。这个问题的解决方法是将`canvas`声明为指向对象的指针类型,或者将`canvas[i][j]`的值赋给一个指向对象的指针,然后在`switch`语句中使用该指针。例如:
```
Object* canvas[10][10]; // 声明一个指向对象的指针数组
// 将某些对象赋给canvas数组
canvas[i][j] = new Object();
// 在switch语句中使用指向对象的指针
switch (canvas[i][j]->type) {
case ObjectType::TypeA:
// 处理TypeA对象
break;
case ObjectType::TypeB:
// 处理TypeB对象
break;
default:
// 处理其他情况
break;
}
```
注意,上述代码中使用了一个枚举类型`ObjectType`来标识不同类型的对象,这可以帮助我们更清晰地区分不同的情况。
阅读全文