У меня есть 2 структуры, у которых 90% полей одинаковы. Я хочу сгруппировать эти поля в структуре, но я не хочу использовать оператор точки для доступа к ним. Причина в том, что я уже написал первую структуру и только что создал вторую.
до:
typedef struct{
int a;
int b;
int c;
object1 name;
} str1;
typedef struct{
int a;
int b;
int c;
object2 name;
} str2;
Теперь я бы создал третью структуру:
typedef struct{
int a;
int b;
int c;
} str3;
и изменит str1 и atr2 на это:
typedef struct{
str3 str;
object1 name;
} str1;
typedef struct {
str3 str;
object2 name;
} str2;
Наконец, я хотел бы получить доступ к a, b и c, выполнив:
str1 myStruct;
myStruct.a;
myStruct.b;
myStruct.c;
а не:
myStruct.str.a;
myStruct.str.b;
myStruct.str.c;
Есть ли способ сделать такую вещь. Причина для этого заключается в том, что я хочу сохранить целостность данных, если бы изменения в структуре должны были произойти, чтобы не повторяться и не приходилось изменять мой существующий код и не иметь полей, вложенных слишком глубоко.
РАЗРЕШЕНО: спасибо за все ваши ответы. Последний способ сделать так, чтобы я мог использовать автозаполнение, был следующий:
struct str11<br>
{<br>
int a;<br>
int b;<br>
int c;<br>
};<br>
typedef struct str22 : public str11<br>
{<br>
QString name;<br>
}hi;<br>