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