此声明在初始化静态成员时没有存储 class 或类型说明符

This declaration has no storage class or type specifier when Initializing static member

这是我的代码。

lib.hpp

class MainMenuDriver {
public:
    static LiquidCrystal lcd;
    static std::vector<std::string> menu_items;
    static std::stack<std::string>  menu_stack;
    static std::stack<std::string>  temp_stack;
    // ...

main.cpp

#include "lib.hpp"

MainMenuDriver::lcd = LiquidCrystal(8, 9, 4, 5, 6, 7); // Error
// ...

假设 LiquidCrystal 确实存在,如您所见,我想将蓝图和操作分成两个不同的部分。我已经知道你可以在 MainMenuDriver 的构造函数中初始化 lcd 但是 我想以静态方式调用这个构造函数,这意味着我不想创建 MainMenuDriver 的实例。

提前谢谢大家,祝你有愉快的一天!

初始化静态数据成员时还必须指定类型lcd,如下所示。使用

LiquidCrystal MainMenuDriver::lcd = LiquidCrystal(8, 9, 4, 5, 6, 7);