此声明在初始化静态成员时没有存储 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);
这是我的代码。
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);