C++和C非成员多重结构初始化
答
一种方法是:
#define DATA { bla,bla,bla,bla }
var a = DATA;
var b = DATA;
答
工作对我来说:
// header
struct Foo {
int a;
int b;
};
extern Foo const x;
extern Foo const y;
// cpp file
Foo const x{2, 3};
Foo const y = x;
编辑:重新诠释的问题一点点。
答
您可以使用复制构造函数来初始化结构。 (这需要使用一个辅助函数来确保初始化的正确顺序。)如果结构POD,这应该是定期的编译时初始化为有效:
struct A {
int a;
double c;
};
A initial_data() {
return { 1, 2.0 };
}
A a = initial_data();
A b = initial_data();
都是结构相同的布局明智? – StoryTeller
'a = b = c = d = {...}'? – DevSolar
是的,结构是相同的类型。 –