class ListItem
{
ListItem* GetPrev ();
ListItem* GetNext ();
// ... and many more
};
class One : public ListItem
{
One* GetPrev() { return static_cast<One*>(ListItem::GetPrev()); }
One* GetNext() { return static_cast<One*>(ListItem::GetNext()); }
// ... and many more overrides
};
class Two : public ListItem
{
Two* GetPrev() { return static_cast<Two*>(ListItem::GetPrev()); }
Two* GetNext() { return static_cast<Two*>(ListItem::GetNext()); }
// ... and many more overrides
};
class Object : public One, public Two
{
};
Цель этого класса заключается в том, чтобы объект класса был вставлен в два или более разных списка. Мой вопрос в том, как я могу выбрать один и два? Так как название класса также отображается как тип, возможно ли это? У меня это покрывается макросами, но можно ли это сделать с помощью шаблонов? Я не против, если структура кода немного изменится, но можно ли это сделать без макросов?Замена макросов определения классов с помощью шаблонов
Есть два ['std :: list