Constant Member Functions

本文介绍了C++中常量成员函数的概念及使用方法。通过示例详细解释了如何声明和定义常量成员函数,以及它们如何确保不修改所属对象的状态。同时展示了常量成员函数在实际编程中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Declaring a member function with the const keyword specifies that the function is a "read-only" function that does not modify the object for which it is called.

To declare a constant member function, place the const keyword after the closing parenthesis of the argument list. The const keyword is required in both the declaration and the definition. A constant member function cannot modify any data members or call any member functions that aren't constant.

// constant_member_function.cpp
class Date
{
public:
   Date( int mn, int dy, int yr );
   int getMonth() const;     // A read-only function
   void setMonth( int mn );   // A write function; can't be const
private:
   int month;
};

int Date::getMonth() const
{
   return month;        // Doesn't modify anything
}
void Date::setMonth( int mn )
{
   month = mn;          // Modifies data member
}
int main()
{
   Date MyDate( 7, 4, 1998 );
   const Date BirthDate( 1, 18, 1953 );
   MyDate.setMonth( 4 );    // Okay
   BirthDate.getMonth();    // Okay
   BirthDate.setMonth( 4 ); // C2662 Error
}

WARNING: library Preferences claims to run on all architecture(s) and may be incompatible with your current board which runs on esp8266 architecture(s). In file included from c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/BlinkerESPMQTT.h:16, from c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Blinker.h:43, from E:\sketch_aug12a\sketch_aug12a.ino:5: c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Adapters/BlinkerMQTT.h: In member function 'virtual char* BlinkerMQTT::token()': c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Adapters/BlinkerMQTT.h:144:50: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] 144 | char * token() { if (!isMQTTinit) return ""; else return MQTT_KEY_MQTT; } | ^~ In file included from c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/BlinkerESPMQTT.h:16, from c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Blinker.h:43, from E:\sketch_aug12a\sketch_aug12a.ino:5: c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Adapters/BlinkerMQTT.h: In member function 'virtual char* BlinkerMQTT::lastRead()': c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Adapters/BlinkerMQTT.h:963:17: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] 963 | else return ""; | ^~ In file included from c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Blinker/BlinkerApi.h:95, from c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/BlinkerESPMQTT.h:17, from c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Blinker.h:43, from E:\sketch_aug12a\sketch_aug12a.ino:5: c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Blinker/BlinkerApiBase.h: In member function 'char* BlinkerBridge_key::getName()': c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Blinker/BlinkerApiBase.h:196:29: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] 196 | else return "false"; | ^~~~~~~ In file included from c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Blinker/BlinkerApi.h:96, from c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/BlinkerESPMQTT.h:17, from c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Blinker.h:43, from E:\sketch_aug12a\sketch_aug12a.ino:5: c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Blinker/BlinkerProtocol.h: In member function 'char* BlinkerProtocol::deviceName()': c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Blinker/BlinkerProtocol.h:104:86: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] 104 | char * deviceName() { if (isInit) return conn->deviceName(); else return ""; } | ^~ c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Blinker/BlinkerProtocol.h: In member function 'char* BlinkerProtocol::authKey()': c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Blinker/BlinkerProtocol.h:105:83: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] 105 | char * authKey() { if (isInit) return conn->authKey(); else return ""; } | ^~ c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Blinker/BlinkerProtocol.h: In member function 'char* BlinkerProtocol::token()': c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Blinker/BlinkerProtocol.h:106:79: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] 106 | char * token() { if (isInit) return conn->token(); else return ""; } | ^~ c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Blinker/BlinkerProtocol.h: In member function 'char* BlinkerProtocol::dataParse()': c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Blinker/BlinkerProtocol.h:257:86: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] 257 | char* dataParse() { if (canParse) return conn->lastRead(); else return ""; } | ^~ In file included from c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Adapters/BlinkerMQTT.h:46, from c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/BlinkerESPMQTT.h:16, from c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Blinker.h:43, from E:\sketch_aug12a\sketch_aug12a.ino:5: c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Blinker/BlinkerApi.h: At global scope: c:\users\administrator\documents\arduino\libraries\blinker\src\blinker\blinkerconfig.h:226:41: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] 226 | #define BLINKER_CMD_BUILTIN_SWITCH "switch" | ^~~~~~~~ c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Blinker/BlinkerApi.h:913:71: note: in expansion of macro 'BLINKER_CMD_BUILTIN_SWITCH' 913 | BlinkerWidgets_string _BUILTIN_SWITCH = BlinkerWidgets_string(BLINKER_CMD_BUILTIN_SWITCH); | ^~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/BlinkerESPMQTT.h:17, from c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Blinker.h:43, from E:\sketch_aug12a\sketch_aug12a.ino:5: c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Blinker/BlinkerApi.h: In member function 'char* BlinkerApi::bridgeKey(uint8_t)': c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Blinker/BlinkerApi.h:7831:21: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] 7831 | else return ""; | ^~ c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Blinker/BlinkerApi.h: In member function 'char* BlinkerApi::bridgeName(uint8_t)': c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Blinker/BlinkerApi.h:7838:21: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] 7838 | else return "false"; | ^~~~~~~ c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Blinker/BlinkerApi.h: In member function 'char* BlinkerApi::widgetName_str(uint8_t)': c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Blinker/BlinkerApi.h:8467:17: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] 8467 | else return ""; | ^~ c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Blinker/BlinkerApi.h: In member function 'char* BlinkerApi::widgetName_joy(uint8_t)': c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Blinker/BlinkerApi.h:8474:21: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] 8474 | else return ""; | ^~ c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Blinker/BlinkerApi.h: In member function 'char* BlinkerApi::widgetName_rgb(uint8_t)': c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Blinker/BlinkerApi.h:8481:17: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] 8481 | else return ""; | ^~ c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Blinker/BlinkerApi.h: In member function 'char* BlinkerApi::widgetName_int(uint8_t)': c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Blinker/BlinkerApi.h:8487:17: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] 8487 | else return ""; | ^~ c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Blinker/BlinkerApi.h: In member function 'char* BlinkerApi::widgetName_tab(uint8_t)': c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Blinker/BlinkerApi.h:8493:17: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] 8493 | else return ""; | ^~ In file included from c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Blinker.h:43, from E:\sketch_aug12a\sketch_aug12a.ino:5: c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/BlinkerESPMQTT.h: At global scope: c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/BlinkerESPMQTT.h:34:22: error: member 'BlinkerApi <unnamed class>::<anonymous>' with constructor not allowed in anonymous aggregate 34 | class BlinkerESPMQTT : public BlinkerApi | ^ c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/BlinkerESPMQTT.h:34:22: error: member 'BlinkerApi <unnamed class>::<anonymous>' with destructor not allowed in anonymous aggregate c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/BlinkerESPMQTT.h:34:22: error: member 'BlinkerApi <unnamed class>::<anonymous>' with copy assignment operator not allowed in anonymous aggregate c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/BlinkerESPMQTT.h:348:21: error: member 'BlinkerMQTT <unnamed class>::Transp' with constructor not allowed in anonymous aggregate 348 | BlinkerMQTT Transp; | ^~~~~~ c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/BlinkerESPMQTT.h:348:21: error: member 'BlinkerMQTT <unnamed class>::Transp' with copy assignment operator not allowed in anonymous aggregate c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/BlinkerESPMQTT.h:349:2: error: abstract declarator '<unnamed class>' used as declaration 349 | }; | ^ In file included from E:\sketch_aug12a\sketch_aug12a.ino:5: c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Blinker.h:45:29: error: 'Blinker' does not name a type; did you mean 'BlinkerApi'? 45 | BlinkerESPMQTT Blinker; | ^~~~~~~ | BlinkerApi In file included from c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/BlinkerWidgets.h:6, from c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Blinker.h:266, from E:\sketch_aug12a\sketch_aug12a.ino:5: c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Functions/BlinkerBridge.h: In constructor 'BlinkerBridge::BlinkerBridge(char*, blinker_callback_with_string_arg_t)': c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Functions/BlinkerBridge.h:12:20: error: 'Blinker' was not declared in this scope; did you mean 'BlinkerApi'? 12 | bNum = Blinker.attachBridge(_key, _func); | ^~~~~~~ | BlinkerApi c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Functions/BlinkerBridge.h: In member function 'void BlinkerBridge::attach(blinker_callback_with_string_arg_t)': c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Functions/BlinkerBridge.h:19:13: error: 'Blinker' was not declared in this scope; did you mean 'BlinkerApi'? 19 | Blinker.freshAttachBridge(Blinker.bridgeKey(bNum), _func); | ^~~~~~~ | BlinkerApi c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Functions/BlinkerBridge.h: In member function 'void BlinkerBridge::print(T1)': c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Functions/BlinkerBridge.h:26:24: error: 'Blinker' was not declared in this scope; did you mean 'BlinkerApi'? 26 | if (strcmp(Blinker.bridgeName(bNum), BLINKER_CMD_FALSE) != 0) | ^~~~~~~ | BlinkerApi c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Functions/BlinkerBridge.h: In member function 'void BlinkerBridge::print(T1, T2)': c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Functions/BlinkerBridge.h:35:24: error: 'Blinker' was not declared in this scope; did you mean 'BlinkerApi'? 35 | if (strcmp(Blinker.bridgeName(bNum), BLINKER_CMD_FALSE) != 0) | ^~~~~~~ | BlinkerApi In file included from c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/BlinkerWidgets.h:9, from c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Blinker.h:266, from E:\sketch_aug12a\sketch_aug12a.ino:5: c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Functions/BlinkerButton.h: In constructor 'BlinkerButton::BlinkerButton(char*, blinker_callback_with_string_arg_t)': c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Functions/BlinkerButton.h:12:20: error: 'Blinker' was not declared in this scope; did you mean 'BlinkerApi'? 12 | wNum = Blinker.attachWidget(_name, _func); | ^~~~~~~ | BlinkerApi c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Functions/BlinkerButton.h: In member function 'void BlinkerButton::attach(blinker_callback_with_string_arg_t)': c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Functions/BlinkerButton.h:19:13: error: 'Blinker' was not declared in this scope; did you mean 'BlinkerApi'? 19 | Blinker.freshAttachWidget(Blinker.widgetName_str(wNum), _func); | ^~~~~~~ | BlinkerApi c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Functions/BlinkerButton.h: In member function 'void BlinkerButton::print(const String&)': c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Functions/BlinkerButton.h:205:13: error: 'Blinker' was not declared in this scope; did you mean 'BlinkerApi'? 205 | Blinker.printArray(Blinker.widgetName_str(wNum), buttonData); | ^~~~~~~ | BlinkerApi In file included from c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/BlinkerWidgets.h:10, from c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Blinker.h:266, from E:\sketch_aug12a\sketch_aug12a.ino:5: c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Functions/BlinkerNumber.h: In member function 'void BlinkerNumber::_print(const String&)': c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Functions/BlinkerNumber.h:90:17: error: 'Blinker' was not declared in this scope; did you mean 'BlinkerApi'? 90 | Blinker.printNumArray(numName, value); | ^~~~~~~ | BlinkerApi c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Functions/BlinkerNumber.h:153:13: error: 'Blinker' was not declared in this scope; did you mean 'BlinkerApi'? 153 | Blinker.printArray(numName, numberData); | ^~~~~~~ | BlinkerApi In file included from c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/BlinkerWidgets.h:11, from c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Blinker.h:266, from E:\sketch_aug12a\sketch_aug12a.ino:5: c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Functions/BlinkerImage.h: In constructor 'BlinkerImage::BlinkerImage(char*, blinker_callback_with_int32_arg_t)': c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Functions/BlinkerImage.h:12:20: error: 'Blinker' was not declared in this scope; did you mean 'BlinkerApi'? 12 | wNum = Blinker.attachWidget(_name, _func); | ^~~~~~~ | BlinkerApi c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Functions/BlinkerImage.h: In member function 'void BlinkerImage::attach(blinker_callback_with_int32_arg_t)': c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Functions/BlinkerImage.h:21:13: error: 'Blinker' was not declared in this scope; did you mean 'BlinkerApi'? 21 | Blinker.freshAttachWidget(Blinker.widgetName_int(wNum), _func); | ^~~~~~~ | BlinkerApi c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Functions/BlinkerImage.h: In member function 'void BlinkerImage::print(uint8_t)': c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Functions/BlinkerImage.h:35:13: error: 'Blinker' was not declared in this scope; did you mean 'BlinkerApi'? 35 | Blinker.printArray(Blinker.widgetName_int(wNum), ImageData); | ^~~~~~~ | BlinkerApi In file included from c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/BlinkerWidgets.h:12, from c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Blinker.h:266, from E:\sketch_aug12a\sketch_aug12a.ino:5: c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Functions/BlinkerRGB.h: In constructor 'BlinkerRGB::BlinkerRGB(char*, blinker_callback_with_rgb_arg_t)': c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Functions/BlinkerRGB.h:13:20: error: 'Blinker' was not declared in this scope; did you mean 'BlinkerRGB'? 13 | wNum = Blinker.attachWidget(_name, _func); | ^~~~~~~ | BlinkerRGB c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Functions/BlinkerRGB.h: In member function 'void BlinkerRGB::attach(blinker_callback_with_rgb_arg_t)': c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Functions/BlinkerRGB.h:20:13: error: 'Blinker' was not declared in this scope; did you mean 'BlinkerRGB'? 20 | Blinker.freshAttachWidget(Blinker.widgetName_rgb(wNum), _func); | ^~~~~~~ | BlinkerRGB c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Functions/BlinkerRGB.h: In member function 'void BlinkerRGB::print(uint8_t, uint8_t, uint8_t)': c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Functions/BlinkerRGB.h:39:13: error: 'Blinker' was not declared in this scope; did you mean 'BlinkerRGB'? 39 | Blinker.printArray(Blinker.widgetName_rgb(wNum), rgbData); | ^~~~~~~ | BlinkerRGB c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Functions/BlinkerRGB.h: In member function 'void BlinkerRGB::print(uint8_t, uint8_t, uint8_t, uint8_t)': c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Functions/BlinkerRGB.h:58:13: error: 'Blinker' was not declared in this scope; did you mean 'BlinkerRGB'? 58 | Blinker.printArray(Blinker.widgetName_rgb(wNum), rgbData); | ^~~~~~~ | BlinkerRGB In file included from c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/BlinkerWidgets.h:14, from c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Blinker.h:266, from E:\sketch_aug12a\sketch_aug12a.ino:5: c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Functions/BlinkerJoystick.h: In constructor 'BlinkerJoystick::BlinkerJoystick(char*, blinker_callback_with_joy_arg_t)': c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Functions/BlinkerJoystick.h:14:24: error: 'Blinker' was not declared in this scope; did you mean 'BlinkerRGB'? 14 | wNum = Blinker.attachWidget(_name, _func); | ^~~~~~~ | BlinkerRGB c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Functions/BlinkerJoystick.h: In member function 'void BlinkerJoystick::attach(blinker_callback_with_joy_arg_t)': c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Functions/BlinkerJoystick.h:23:17: error: 'Blinker' was not declared in this scope; did you mean 'BlinkerRGB'? 23 | Blinker.freshAttachWidget(Blinker.widgetName_joy(wNum), _func); | ^~~~~~~ | BlinkerRGB In file included from c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/BlinkerWidgets.h:16, from c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Blinker.h:266, from E:\sketch_aug12a\sketch_aug12a.ino:5: c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Functions/BlinkerSlider.h: In constructor 'BlinkerSlider::BlinkerSlider(char*, blinker_callback_with_int32_arg_t)': c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Functions/BlinkerSlider.h:13:20: error: 'Blinker' was not declared in this scope; did you mean 'BlinkerRGB'? 13 | wNum = Blinker.attachWidget(_name, _func); | ^~~~~~~ | BlinkerRGB c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Functions/BlinkerSlider.h: In member function 'void BlinkerSlider::attach(blinker_callback_with_int32_arg_t)': c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Functions/BlinkerSlider.h:20:13: error: 'Blinker' was not declared in this scope; did you mean 'BlinkerRGB'? 20 | Blinker.freshAttachWidget(Blinker.widgetName_int(wNum), _func); | ^~~~~~~ | BlinkerRGB c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Functions/BlinkerSlider.h: In member function 'void BlinkerSlider::_print(const String&)': c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Functions/BlinkerSlider.h:83:13: error: 'Blinker' was not declared in this scope; did you mean 'BlinkerRGB'? 83 | Blinker.printArray(Blinker.widgetName_int(wNum), sliderData); | ^~~~~~~ | BlinkerRGB In file included from c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/BlinkerWidgets.h:17, from c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Blinker.h:266, from E:\sketch_aug12a\sketch_aug12a.ino:5: c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Functions/BlinkerSwitch.h: In member function 'void BlinkerSwitch::attach(blinker_callback_with_string_arg_t)': c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Functions/BlinkerSwitch.h:16:13: error: 'Blinker' was not declared in this scope; did you mean 'BlinkerRGB'? 16 | Blinker.attachSwitch(_func); | ^~~~~~~ | BlinkerRGB c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Functions/BlinkerSwitch.h: In member function 'void BlinkerSwitch::print(const String&)': c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Functions/BlinkerSwitch.h:20:13: error: 'Blinker' was not declared in this scope; did you mean 'BlinkerRGB'? 20 | Blinker.print(BLINKER_CMD_BUILTIN_SWITCH, _state); | ^~~~~~~ | BlinkerRGB In file included from c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/BlinkerWidgets.h:18, from c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Blinker.h:266, from E:\sketch_aug12a\sketch_aug12a.ino:5: c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Functions/BlinkerTab.h: In constructor 'BlinkerTab::BlinkerTab(char*, blinker_callback_with_table_arg_t, blinker_callback_t)': c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Functions/BlinkerTab.h:13:20: error: 'Blinker' was not declared in this scope; did you mean 'BlinkerTab'? 13 | wNum = Blinker.attachWidget(_name, _func, _func2); | ^~~~~~~ | BlinkerTab c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Functions/BlinkerTab.h: In member function 'void BlinkerTab::attach(blinker_callback_with_table_arg_t, blinker_callback_t)': c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Functions/BlinkerTab.h:21:13: error: 'Blinker' was not declared in this scope; did you mean 'BlinkerTab'? 21 | Blinker.freshAttachWidget(Blinker.widgetName_tab(wNum), _func, _func2); | ^~~~~~~ | BlinkerTab c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Functions/BlinkerTab.h: In member function 'void BlinkerTab::print()': c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Functions/BlinkerTab.h:83:13: error: 'Blinker' was not declared in this scope; did you mean 'BlinkerTab'? 83 | Blinker.printArray(Blinker.widgetName_tab(wNum), tabData); | ^~~~~~~ | BlinkerTab In file included from c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/BlinkerWidgets.h:19, from c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Blinker.h:266, from E:\sketch_aug12a\sketch_aug12a.ino:5: c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Functions/BlinkerText.h: In member function 'void BlinkerText::print(T)': c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Functions/BlinkerText.h:53:13: error: 'Blinker' was not declared in this scope; did you mean 'BlinkerTab'? 53 | Blinker.printArray(textName, textData); | ^~~~~~~ | BlinkerTab c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Functions/BlinkerText.h: In member function 'void BlinkerText::print(T1, T2)': c:\Users\Administrator\Documents\Arduino\libraries\Blinker\src/Functions/BlinkerText.h:98:13: error: 'Blinker' was not declared in this scope; did you mean 'BlinkerTab'? 98 | Blinker.printArray(textName, textData); | ^~~~~~~ | BlinkerTab Multiple libraries were found for "EEPROM.h" Used: C:\Users\Administrator\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\libraries\EEPROM Not used: C:\Users\Administrator\Documents\Arduino\libraries\ATMAC_EEPROM Multiple libraries were found for "Ticker.h" Used: C:\Users\Administrator\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\libraries\Ticker Not used: C:\Users\Administrator\Documents\Arduino\libraries\SimpleTicker Not used: C:\Users\Administrator\Documents\Arduino\libraries\Ticker Multiple libraries were found for "Blinker.h" Used: C:\Users\Administrator\Documents\Arduino\libraries\Blinker Not used: C:\Users\Administrator\Documents\Arduino\libraries\GyverBlinker Not used: C:\Users\Administrator\Documents\Arduino\libraries\BarePoller exit status 1 Compilation error: exit status 1
08-13
基于Spring Boot搭建的一个多功能在线学习系统的实现细节。系统分为管理员和用户两个主要模块。管理员负责视频、文件和文章资料的管理以及系统运营维护;用户则可以进行视频播放、资料下载、参与学习论坛并享受个性化学习服务。文中重点探讨了文件下载的安全性和性能优化(如使用Resource对象避免内存溢出),积分排行榜的高效实现(采用Redis Sorted Set结构),敏感词过滤机制(利用DFA算法构建内存过滤树)以及视频播放的浏览器兼容性解决方案(通过FFmpeg调整MOOV原子位置)。此外,还提到了权限管理方面自定义动态加载器的应用,提高了系统的灵活性和易用性。 适合人群:对Spring Boot有一定了解,希望深入理解其实际应用的技术人员,尤其是从事在线教育平台开发的相关从业者。 使用场景及目标:适用于需要快速搭建稳定高效的在线学习平台的企业或团队。目标在于提供一套完整的解决方案,涵盖从资源管理到用户体验优化等多个方面,帮助开发者更好地理解和掌握Spring Boot框架的实际运用技巧。 其他说明:文中不仅提供了具体的代码示例和技术思路,还分享了许多实践经验教训,对于提高项目质量有着重要的指导意义。同时强调了安全性、性能优化等方面的重要性,确保系统能够应对大规模用户的并发访问需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值