Сообщение Re: Ключевое слово для доступа к объемлющему классу из вложе от 08.11.2023 23:11
Изменено 08.11.2023 23:12 graniar
Re: Ключевое слово для доступа к объемлющему классу из вложенного
Здравствуйте, x-code, Вы писали:
Я на C делаю так:
например:
Я на C делаю так:
#define GetAggregateByMember(Aggregate,MemberName,MemberLink) ((Aggregate*)(((size_t)(MemberLink))-((size_t)&((Aggregate*)(size_t)0)->MemberName)))например:
struct B{
int side;
B* peer;
};
struct A{
B b[2];
A(){
b[0].side=0;
b[1].side=1;
}
};
B* pb;
//...
A* a1 = GetAggregateByMember(A,b[pb->side],pb);Re: Ключевое слово для доступа к объемлющему классу из вложе
Я на C делаю так:
например:
#define GetAggregateByMember(Aggregate,MemberName,MemberLink) \
((Aggregate*)(((size_t)(MemberLink))-((size_t)&((Aggregate*)(size_t)0)->MemberName)))например:
struct B{
int side;
B* peer;
};
struct A{
B b[2];
A(){
b[0].side=0;
b[1].side=1;
}
};
B* pb;
//...
A* a1 = GetAggregateByMember(A,b[pb->side],pb);