我在空闲时间收到一个小问题,要求在C++中更改对象行为以及运行时的类行为.我读了一下,找到了这个链接,对我来说非常有用.http://www.vollmann.ch/en/pubs/meta/meta/meta.html Volmann先生制作了一个Meta对象协议(MOP),用于在运行时定义类,更确切地说是它们的属性.
我尝试在运行时添加相同的方法,动态加载dll,但对象不知道他们新增加的行为.我在xml文件中保存了dll中方法的详细信息,当我想向类/对象添加新行为时,我解析了xml文件并仅加载了我需要的DLL,但这不够灵活.
这只是一个研究案例,所以如果你有任何指导,请做.我没有太多C++经验,但我喜欢这个挑战.
先感谢您.
您可以尝试为所有类创建某种基类.这个类有一些函数指针的add方法.每个fp都分配了某种句柄或字符串.之后,您可以通过某种通用调用方法调用添加的函数.
对于函数的参数 - 你需要一些方法将它传递给函数以引用类的数据.也许你会将数据封装在某种结构中,并将引用/指针传递给结构.对于其他参数,您可以使用一些指针列表或查看bind.
请注意 - 这是一项重大任务,因为C++不是在考虑这些事情的情况下创建的.
| 归档时间: |
|
| 查看次数: |
653 次 |
| 最近记录: |