我尝试按照ETSI规范实施一个软件。 现在我必须编写一个结构,其中一个变量被声明为extern。
file2.cpp
struct struct_one {
extern Algo algo;
int x;
}
file1.cpp
struct struct_two {
Algo algo;
char c;
}
那么,我如何告诉"编译器,那两个" algo"变量包含相同的东西? 是否足以在file2中包含file1?
或者我该怎么做?
问候
答案 0 :(得分:1)
你做不到,但你可以这样做:
file1.cpp
struct struct_two {
Algo algo;
char c;
}
file2.cpp
struct struct_one {
explicit struct_one(struct_two& t) : algo(t.algo) {}
Algo& algo;
int x;
}
或使用组合模式('有'关系):
file1.cpp
struct struct_two {
Algo algo;
char c;
}
file2.cpp
struct struct_one {
struct_two t;
int x;
}