我有一个标题,用于定义要在c ++ DLL的边界上传递的c样式结构。此头文件和DLL可能会被c ++,java和c应用程序使用。我想以某种方式初始化这些结构,允许用户指定参数的子集,其余的将被赋予默认值。
我正在考虑在标题中创建一系列初始化函数,这些函数将引用它们将初始化的结构以及可以设置的所有成员的参数。 "初始化"函数将使用重载(基于传入的结构引用)来确保调用正确的。我还计划使用默认参数来设置默认值。我想这些功能必须是全球功能。
这是一个好方法吗?还有更好的选择吗?感谢
答案 0 :(得分:6)
您可以添加一个返回默认初始化结构的函数:
struct abc
{
int a;
float b;
char c;
};
abc GetDefaultAbc()
{
const abc def = { 1,2.0,3 };
return def;
};