简体   繁体   中英

C++ discards qualifiers

I have this error:

BSPArduino.cpp:316: error: passing 'const BSPArduino' as 'this' argument of 'virtual void BSPArduino::enableWdt(const WATCHDOG_TIMER_DELAY&, const ___bool&)' discards qualifiers

This method is define like that:

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

I want to call it like that:

enableWdt(this->watchdogTimer, ___false);

With:

WATCHDOG_TIMER_DELAY watchdogTimer;

I don't understand why this build error...

Thank you so much for your help

Anthony

BSPArduino::enableWdt() is a non-const method. If you try and call a non-const method from a const one you will get this error.

Essentially the error is trying to tell you that you are discarding the constness of "this".

You're trying to call a non- const function from a const member function; that's not allowed.

If possible, add a const qualifier to enableWdt . If that's not possible (because it modifies the object) then you'll have to either remove the const qualifier from the calling function, or restructure the code so that enableWdt is called from somewhere else.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM