5

我有这个错误:

BSPArduino.cpp:316:错误:将 'const BSPArduino' 作为 'virtual void BSPArduino::enableWdt(const WATCHDOG_TIMER_DELAY&, const ___bool&)' 的 'this' 参数传递会丢弃限定符

这个方法是这样定义的:

void BSPArduino::enableWdt(const WATCHDOG_TIMER_DELAY &delay, const ___bool &enable)

我想这样称呼它:

enableWdt(this->watchdogTimer, ___false);

和:

WATCHDOG_TIMER_DELAY watchdogTimer;

我不明白为什么这个构建错误......

非常感谢你的帮助

安东尼

4

2 回答 2

16

BSPArduino::enableWdt() 是一种非常量方法。如果您尝试从 const 调用非常量方法,则会收到此错误。

本质上,错误是试图告诉您您正在丢弃“this”的常量。

于 2014-01-17T15:51:50.887 回答
4

您正在尝试constconst成员函数调用非函数;这是不允许的。

如果可能,将const限定符添加到enableWdt. 如果这是不可能的(因为它修改了对象),那么您将不得不const从调用函数中删除限定符,或者重组代码以便enableWdt从其他地方调用。

于 2014-01-17T15:51:35.067 回答