我在mode类中写了virtual bool update(){return flase}函数,在调用mode类的这个函数时候,为什么会显示没有这个函数而且会跳到另一个类中
时间: 2024-09-19 17:04:26 浏览: 8
看起来你在描述的是C++中的面向对象编程场景,如果你在基类`Mode`中定义了一个`virtual bool update()`函数,但在子类中并没有提供具体的实现,那么当你试图通过基类指针或引用调用这个函数时,可能会遇到错误,因为编译器找不到子类对`update`函数的具体实现。
原因可能有以下几点:
1. **未重写**:子类没有显式地重写`update`函数,导致它在子类中实际上是一个未定义的普通函数,而不是虚函数。
2. **拼写错误**:检查一下子类中是否有误将`false`写成`flase`,这是小写的,可能导致编译器无法找到匹配的方法。
3. **作用域问题**:子类中的`update`函数定义是否在基类的作用域内,如果没有正确导入或包含,也可能找不到。
解决这个问题的方法是在相应的子类中添加对`update`函数的重写,例如:
```cpp
class DerivedMode : public Mode {
public:
virtual bool update() override { return true; } // 显示在这里,修复了问题
};
```
这样当你通过`Mode*`指针调用`update`时,就会执行`DerivedMode`中的实现。