从字符串属性中查找类对象

Find class object from string property

本文关键字:对象 查找 字符串 属性      更新时间:2023-10-16

假设我有一个简单的类,定义如下

class objectA {
 public:
  objectA() {} objectA(std::string aName, int aValue) : name(aName), value(aValue) {}
  std::string name;
  int value;
}

定义了两个对象

objectA A("myObjectA", 1);
objectA B("myObjectB", 2);

如何在编译时通过键查找(如

)访问其中一个对象?
get("myObjectA")
也可以在 之后设置值
get("myObjectA")->setValue("3") //sets the int value new

我认为您可以将静态STD::map作为ObjectA类的私有成员。还需要一个静态Getter来根据键值查询这个映射。

还有一件事要在CTOR中填充这个映射,这将确保在注册到这个静态映射时不会丢失任何对象。