我想创建一个类来将辅助数据存储在任意对象中 - 什么是一种干净的方法?
class A{
std::string _name;
int _val;
void * _extraData;
//I want to implement these methods
void setExtraData(void * data){
//
}
void * getExtraData(){
}
};
class B{
std::vector<A *> v;
void foo(){
//use A here - _extraData will
//be a (say) a vector<int>
}
};
最佳答案
如果你有一组已知的类型,我会从 boost::variant
开始,如果没有,我会从 boost::any
开始。你总是可以评估你的设计,看看带有抽象接口(interface)的多态性是否也能解决你的问题(有时它没有帮助)。有关您尝试解决的实际问题的更多详细信息可能有助于得出更好的答案。
关于c++ - C++ 类中的任意数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11617821/