У меня следующая структура
class Base
{
public:
Base(Type);
virtual render
}
class A
{
public:
Base(Type == A);
void render()
}
class B
{
public:
Base(Type == B);
void render()
}
void client_function()
{
Base baseObject(A);
//Base is an instance of class A
baseObject.render()//runs class A render
}
В приведенном выше коде, насколько я знаю, есть вещи, которые не относятся к c ++, они тесно связаны с сопоставлением с образцом, найденным, например, в Haskell, но это лучший способ проиллюстрировать мой вопрос, даже не зная, ответ;)
В письменном виде я хочу, чтобы клиент мог создавать базовый объект и передавать тип объекта в качестве аргумента, возвращается правильная спецификация объекта, и клиенту не нужно заботиться об этом, он просто знает, что работает render будет запускать правильный конкретный рендер.
Пожалуйста, не стесняйтесь задавать вопросы, если мне было неясно:)