问题描述
我有两个类如下:
class A
{
constexpr char* m_flag_file{"/flag_file.txt"};
constexpr bool m_default_flag{false};
A();
bool read ();
void write (bool);
}
extern A a;
A::A(){};
bool A::read()
{
String str;
//Read a flag from littleFS and return it.
File file = LittleFS.open(m_flag_file,"r");
if (true == file)
{
str = file.readString();
file.close();
return (str.equals("true"));
}
else
{
write(m_default_flag):
return (m_default_flag);
}
}
void A::write(bool f)
{
File file = LittleFS.open(m_flag_file,"w");
if (true == file)
{
file.write(f ? "true" : "false");
file.close();
}
}
A a;
class B
{
bool m_flag;
B();
bool getFlag ();
}
extern B b;
在 B.cpp 中我有:
#include <A.hpp>
B::B()
{
m_flag = a.read();
}
bool B::getFlag()
{
return (m_flag);
}
B b;
在 main.cpp 文件中,我读到标志 a.read()
函数返回 '1' 但 b.getFlag()
返回 '0'。
#include <A.hpp>
#include <B.hpp>
void setup()
{
Serial.println(String(a.read()));
Serial.println(String(b.getFlag()));
}
我使用: 平台核心 5.1.1 乐鑫_8266平台 v3.0.0
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)