我读过 C++ 中的 POD 对象。我想将 POD 结构写入文件。所以它应该只有公共(public)数据,没有 ctors/dtors 等。但据我所知,它可以有静态功能。那么我可以在这里使用“命名构造函数惯用语”吗?我需要动态初始化,但我不想在每个结构初始化时重复检查参数 这是一个简单的例子(它只是简单的例子,不是工作代码):
struct A
{
int day;
int mouth;
int year;
static A MakeA(const int day, const int month, const int year)
{
// some simple arguments chech
if ( !(day >= 1 && day <= 31) || !(month >=1 && month <=12) || !(year <= 2010) )
throw std::exception();
A result;
result.day = day;
result.month = month;
result.year = year;
return result;
}
};
所以我有某种构造函数和 POD 结构,我可以简单地将其写入文件?它正确吗?
最佳答案
那应该没问题。
你甚至可以有一个非静态成员函数(只要它们不是虚拟的)
你不能拥有自动调用的东西(比如ctor/dtor)。您明确调用的东西没问题。
关于C++ POD初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3603224/