C++ 如何在几个程序中共享结构/类的一部分?

C++ 如何在几个程序中共享结构/类的一部分?,c++,code-reuse,C++,Code Reuse,我有一个顶级程序(这里称之为T),它由几个子模块组成,比如a、B和C。T使用一个大型结构/类,其中包含许多可配置参数,例如 struct P { int a; int b; int c; int d; std::string e; // many more other parameters goes on here }; 每个子模块使用结构p的一部分,并与其他子模块和T进行通信,例如,a可以使用如下内容: struct Pa { int a; int b; };

我有一个顶级程序(这里称之为T),它由几个子模块组成,比如a、B和C。T使用一个大型结构/类,其中包含许多可配置参数,例如

struct P {
  int a;
  int b;
  int c;
  int d;
  std::string e;
// many more other parameters goes on here
};
每个子模块使用结构p的一部分,并与其他子模块和T进行通信,例如,a可以使用如下内容:

struct Pa {
  int a;
  int b;
};
B可以使用类似于:

struct Pb {
  int b;
  int c;
  int d;
};
我可以在每个子模块中复制整个struct p,这样他们总是可以访问他们需要的数据,但这看起来像是糟糕的设计,因为重复数据结构

有没有关于更整洁设计的建议?
谢谢。

为什么不使用3种结构:
usedbyA
usedbyB
usedbyboth
或类似的结构。这些部分是您的“子模块”所需要的,这一事实表明,将它们封装在各自的模块中是有意义的structs@tobi303目前,我确实将它们封装在各自的结构中,但问题是“usedbyboth”部分——比如说,如果一个子模块需要来自另外两个子模块以及顶层程序的一些字段(顶层结构P可能有未被任何子模块共享的字段),那么我将在所有3个结构中都有依赖项。