перегрузка
От: Аноним  
Дата: 05.07.11 08:43
Оценка:
Есть структура:

struct Foo
{
  int a;
  uint b;
};

Она передается какому-нибудь внешнему модулю с помощью функции

void boo(Foo* foo, uint foo_size);


В зависимости от версии интерфейса структура должна меняться, например

  // Ver = 0
struct Foo_v0
{
  int a;
  uint b;
};
  // Ver = 1
struct Foo_v1
{
  int a;
  uint b;
  uint c;
};


Перегружать функцию нельзя. Сделал так:

class Foo {};

class Foo_v0 : public Foo
{
public:
   int a;
   uint b;
};

class Foo_v1 : public Foo
{
public:
   int a;
   uint b;
   uint c;
};


Собственно работает, но хочется узнать побольше вариантов для решения подобного.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.