Supongamos que tengo una interfazclase proxy automático
class I{
public:
virtual void f(int id)=0;
virtual void g(int id, float x)=0;
}
necesito una clase de proxy, hacer algún tipo de identificación para el mapeo puntero
class Proxy : I
{
I * i[5];
public:
void f(int id)
{
i[id]->f(id);
}
void g(int id, float x)
{
i[id]->g(id, x);
}
}
Así que cuando escribo
Proxy *p;
p->f(1);
f se invoca en el objeto con id = 1
hay varios casos similares y las interfaces son bastante grandes. Así que no quiero codificar todas las funciones en la clase de proxy. ¿Hay forma de hacerlo automáticamente? tal vez el uso de macros, plantillas, sobrecarga "->", etc.
¿Hay muchas interfaces que escribe el mismo proxy para, o muchas clases de proxy para la misma interfaz, o muchos sustitutos para muchas interfaces? – hansmaad
es un poco confuso: se ve así y una instancia de I no conoce su propio índice, pero llega a saber cuándo se llaman sus métodos f/g ... ¿por qué? diseño extraño Planearía todo con nunca conocer su propio índice. Eso tendría un mejor sentido. –
@hansmaad, muchos proxies para muchas interfaces (uno a uno) –