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 メソッドです。const メソッドから非 const メソッドを呼び出そうとすると、このエラーが発生します。

基本的に、エラーは、「this」の constness を破棄していることを伝えようとしています。

于 2014-01-17T15:51:50.887 に答える
4

メンバー関数constから非関数を呼び出そうとしています。constそれは許可されていません。

可能であれば、const修飾子をに追加しenableWdtます。それが不可能な場合 (オブジェクトを変更するため) const、呼び出し元の関数から修飾子を削除するか、別の場所から呼び出されるようにコードを再構築する必要がenableWdtあります。

于 2014-01-17T15:51:35.067 に答える