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

标签 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;
}

那么,我如何“告诉”编译器这两个“算法”变量包含相同的东西? 将 file1 包含在 file2 中是否足够?

或者我必须做什么?

问候

最佳答案

你不能那样做,但你可以这样做:

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

关于C++:如何在结构中使用外部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27124139/

相关文章:

c++ - 猜数字游戏

c++ - std::regex 是否支持 "(?i)"不区分大小写?

c++ - 结构 vector : adding elements C++

c - 使用 "="为内部的 char 数组分配结构有效吗?

c++ - 根据 vim 中的语法更改折叠级别

c++ - 如何为 Windows Phone 8 安装 libcurl

c++ - 如何使用较旧的 C++ 标准编译 Boost? (特别是 C++03)

c++ - 为什么我不能在 C++11 中创建一个 lambda vector (相同类型)?

c++ - std::array<T> 初始化

c - 自引用结构和引用