Так что у меня есть класс А:Автоматически копировать все методы
class A{
public:
void DoSomething();
void DoSomethingElse(int x);
};
И я хочу, чтобы иметь еще один класс прокси:
class Proxy{
A* a;
public:
void DoSomething(){ a->DoSomething(); }
void DoSomethingElse(int x){ a->DoSomethingElse(x); }
};
Но загвоздка в том, что я хочу быть в состоянии сделать Proxy
шаблонный класс, так что я могу сделать этот вид преобразования для любого класса ....
есть ли какое-то трюк, что я могу сделать?
Подробное описание:
В основном это прокси-бы каждый метод в классе и создать метод с таким же именем и использовать указатель для завершения методы .... Вы не можете использовать наследование, потому что увеличивает размер, который на самом деле то, чего я пытаюсь избежать здесь.
я в основном прошу есть что-то похожее на переопределение оператора точки, как в этом вопросе: Why can't you overload the '.' operator in C++? (Ответ там было «нет»)
@kfsone Я не уверен, что понимаю ваш вопрос – DarthRubik
Вам нужен только шаблонный класс? Или, может быть, вы попадаете в наследство. –
@TrevorHickey Ну, основное различие между этим и наследованием - это __size__ результирующего класса, поэтому я делаю это так. (размер прокси - sizeof (ptr_t)) – DarthRubik