我正在对一个项目进行Boost处理,我想在Foo类上使用Bundled Properties机制。这是为了允许用户向类添加诸如结构的数据。
实际上,Foo是一个类,以类似于Boost Graph Library中图形边缘的方式使用。 Foo需要包含用户定义的数据(标签,ID等),例如,用户可以在算法处理过程中通过访问者处理这些数据。
但是,我无法理解如何通过元编程将此功能添加到我的Foo类中。你能解释一下一些设计模式吗?
最佳答案
这背后的想法很简单。
托管类将托管的托管类作为模板参数。
一旦有了它,它就从后者派生而来:
template <class T>
template class Host : public T
{
};
根据继承规则的规定,所有公共成员都可以从派生类访问。
如果要链接更多属性,请使用乘法继承。
简单而棒,对吗?
关于c++ - 在C++中的类上允许用户定义的属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35672360/