У меня есть класс контейнера, который можно назвать TestClass и общим классом свойств Property.Обработка динамических свойств для класса в C++
Теперь мне нужно сделать, чтобы разные экземпляры 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 {
....
} ;
Однако то, что мне нужно делать в другой части моей программы есть эффективный способ сказать GetPropertyValue («X») из TestClass ... сначала проверьте, что существующая собственность, а затем извлечь стоимость имущества .... а также множество других операций.
Использование наивного подхода приведет к очень неэффективному методу проверки определенного свойства (при догадках, основанных на имени свойства).
К сожалению, класс свойств будет более сложным, чем просто имя и значение. – oracle3001