gpt4 book ai didi

c++ - C++ 中的元类和反射

转载 作者:太空宇宙 更新时间:2023-11-03 10:37:07 25 4
gpt4 key购买 nike

我在空闲时间收到了一个小问题,需要在 C++ 运行时更改对象行为和类行为。我读了一点,发现这个链接对我很有用。 http://www.vollmann.ch/en/pubs/meta/meta/meta.html Volmann 先生制定了一个元对象协议(protocol) (MOP),用于在运行时定义类,更准确地说是它们的属性。

我试图在运行时以同样的方式添加方法,动态加载 dll,但对象不知道它们新添加的行为。我将有关 dll 中方法的详细信息保存在 xml 文件中,当我想向类/对象添加新行为时,我解析了 xml 文件并仅加载了我需要的 DLL,但这不够灵活。

这只是一个研究案例,所以如果您有任何指导意见,请提供。我在 C++ 方面没有太多经验,但我喜欢挑战。

提前谢谢你。

最佳答案

您可以尝试为所有类创建某种基类。这个类有某种函数指针的添加方法。每个 fp 都被分配了某种句柄或字符串。稍后您可以通过某种通用调用方法调用添加的函数。

对于函数的参数 - 您需要一些方法将其传递给函数以引用类的数据。也许您会将数据封装在某种结构中,并将引用/指针传递给该结构。对于其他参数,您可以使用一些指针列表或查看绑定(bind)。

请注意 - 这是一项重大任务,因为创建 C++ 时并没有考虑到这些问题。

关于c++ - C++ 中的元类和反射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1288216/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com