类包装器和分派器
Class wrapper and dispatcher
假设我有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变量并返回结果。
相关文章:
- 如何在c++17中制作一个模板包装器/装饰器
- std::vector的包装器,使数组的结构看起来像结构的数组
- 如何在c++迭代器类型中包装std::chrono
- 是否可以用"iostream"包装现有的TCP/OOpenSSL会话
- 用pybind11包装C++抽象类时出错
- 为左值和右值的包装器实现C++范围
- C结构,其指针将被包装在unique_ptr中
- 如何包装第三方DLL在R中使用
- 在类型和包装器之间reinterpret_cast是否安全<Type>?
- 将 N-arg 函数包装到另一个函数中
- 元组由 Swig 生成的 Python 包装器返回,用于C++向量
- 包装一个对象并假装它是一个 int
- 使用 Python Extension API 包装复杂C++类
- 外壳包装器句柄/执行交互式命令管道C++ UNIX
- 包装C++类时不完整的类型 GLFWwindow
- 将函数包装器转换为 std::function
- C++函数包装器来捕获某些信号
- 创建包装升压适配器的自定义范围类
- 类包装器和分派器
- 如何使用SWIG为c++模板类创建分派包装器类