我有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)