我尝试遵循ETSI规范来实现一个软件。
现在,我必须编写一个结构,其中将一个变量声明为extern。
file2.cpp
struct struct_one {
extern Algo algo;
int x;
}
file1.cpp
struct struct_two {
Algo algo;
char c;
}
那么,如何“告诉”编译器两个“ algo”变量包含相同的内容?
在file2中包含file1是否足够?
或者我该怎么办?
问候
最佳答案
您无法做到这一点,但是您可以通过以下方式做到这一点:
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;
}