我有一个容器类,我们称它为 TestClass 和一个通用属性类,Property。
现在我需要做的是允许 TestClass 的不同实例具有多个“属性”。这些属性将动态添加,并且可以在运行时定义新属性。
处理这个问题的简单方法似乎只是使用一个存储 Property 类的各种实例的向量之类的东西。
class TestClass{
public:
std::vector<Property> properties ;
addProperty(Property newProperty) {....}
getProperty(String name) {....}
} ;
class Property{
String name ;
double value ;
Definition definition ;
....
};
class Definition {
....
} ;
但是,我在程序的其他部分需要做的是有一种有效的方式从 TestClass 中说 getPropertyValue("X") ...首先检查它是否是现有属性,然后检索该属性的值... .以及各种其他操作。
使用幼稚的方法会导致检查特定属性的方法非常低效(基于属性名称的猜测)。