C ++:如何在结构中使用extern变量

时间:2014-11-25 10:24:23

标签: c++ c++11 struct

我尝试按照ETSI规范实施一个软件。 现在我必须编写一个结构,其中一个变量被声明为extern。

file2.cpp
struct struct_one {
    extern Algo algo;
    int x;
}

file1.cpp
struct struct_two {
    Algo algo;
    char c;
}

那么,我如何告诉"编译器,那两个" algo"变量包含相同的东西? 是否足以在file2中包含file1?

或者我该怎么做?

问候

1 个答案:

答案 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;
}