我可以在不使用点运算符的情况下访问结构内部的结构吗?

yan*_*nce 3 c c++ struct

我有2个结构,其90%的字段相同.我想在结构中对这些字段进行分组,但我不想使用点运算符来访问它们.原因是我已经使用第一个结构编码并刚刚创建了第二个结构.

之前:

typedef struct{
  int a;
  int b;
  int c;
  object1 name;
} str1;  

typedef struct{
  int a;
  int b;
  int c;
  object2 name;
} str2;
Run Code Online (Sandbox Code Playgroud)

现在我要创建第三个结构:

typedef struct{
  int a;
  int b;
  int c;
} str3;
Run Code Online (Sandbox Code Playgroud)

并将str1和atr2更改为:

typedef struct{
  str3 str;
  object1 name;
} str1;

typedef struct {
  str3 str;
  object2 name;
} str2;
Run Code Online (Sandbox Code Playgroud)

最后,我希望能够通过以下方式访问a,b和c:

str1 myStruct;
myStruct.a;
myStruct.b;
myStruct.c;
Run Code Online (Sandbox Code Playgroud)

并不是:

myStruct.str.a;
myStruct.str.b;
myStruct.str.c;
Run Code Online (Sandbox Code Playgroud)

有没有办法做这样的事情.这样做的原因是我希望保持数据的完整性,如果发生结构的chnges并且不重复自己而不必更改我现有的代码并且没有嵌套太深的字段.

决议:thx为您的所有答案.这样做的最后一种方式,我可以使用自动完成也是如下:

struct str11
{
int a;
int b;
int c;
};
typedef struct str22 : public str11
{
QString name;
}hi;

Nat*_*nst 10

是.而是使用C风格的继承,使用C++风格:

struct str3{
  int a;
  int b;
  int c;
};

struct str2 : public str3{
  object2 name;
};
Run Code Online (Sandbox Code Playgroud)