类包装器和分派器

Class wrapper and dispatcher

本文关键字:分派 包装      更新时间:2023-10-16

假设我有a类

我想写一些包装器来包装一些函数,添加一些新函数和所有其他函数分派到A类。并希望它在客户端代码中看起来很自然。我认为这需要某种自省,在c++中可能是不可能的,但也许我错了。

在Cody Gray评论后添加:

我有一个类a用于print in rect,它有SetX, setty, SetDX, SetDY和gettes等方法。我想创建类,也将有方法SetBaseX, SetBaseY和包装SetX, SetY根据给定的基础,但不想包装DX方法。并且也不想使用继承来阻止从包装器类到A的强制转换。我不仅有A,所以包装器必须能够包装许多实现某些接口的类。

您必须手动为包装类的所有函数编写委托包装器。c++中没有自省功能,无法让您自动执行此操作。

你想使用合成

类B是类A的包装器。类B在其构造函数中实例化类A,并在析构函数中删除类A,因此B负责类A。

类B声明了自己的方法和类A的方法,当A的一个方法被调用时,它将其分派给局部类A变量并返回结果。