有时我发现自己写的非常简单的包装器,其中包装器方法直接对应于适应类的一种方法,即:
class ToBeAdapted
{
public:
void a();
void b(int arg);
};
class Wrapper
{
public:
void newA()
{
_adapted.a();
}
void newB(int arg)
{
_adapted.b(arg);
}
private:
ToBeAdapted _adapted;
};
可以(在模板魔术和/或黑暗的预处理程序使用情况下使用此方法)进行某种程度的泛化,以节省编写时间并使以后更容易切换包装器接口吗?
这样的事情会很酷:
wrap_around<ToBeAdapted>(ToBeAdapted::a, newA, ToBeAdapted::b,newB) Wrapper; //Creates the same wrapper class as specified above.
最佳答案
考虑使用私有继承:
class Wrapper : ToBeAdapted
{
public:
void newA() { a(); }
void newB(int arg) { b(arg); }
};
关于c++ - 简化包装器的创建,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11701406/