我正在尝试编写简单的logger类,我最终得到了单例类设计。示例如下:
DataIO.h:
class DataIO
{
private:
static DataIO instance;
public:
static time_t date;
static std::string path;
static FILE* log;
private:
DataIO()
{
date = time(NULL);
path = "#Output_" + std::to_string(date);
std::string buffer = "mkdir " + path;
system(buffer.c_str());
};
~DataIO();
public:
static DataIO getInstance() const { return instance; };
static void restart();
};
DataIO.cpp:
time_t DataIO::date;
std::string DataIO::path;
FILE* DataIO::log;
DataIO DataIO::instance;
我对静态字段中的订单有任何保证会被初始化吗?通常我知道我没有... ... 但在这种情况下,我的DataIO构造函数要求在调用构造函数之前必须声明这三个静态字段。 因此它是否会强制执行静态字段的命令?