【问题标题】:Find class object from string property从字符串属性中查找类对象
【发布时间】:2013-05-29 09:23:05
【问题描述】:

假设我有一个具有以下定义的简单类

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 中的键,或者使用 std::list 并使用 std::find_if 搜索列表.

标签: c++ class key


【解决方案1】:

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

还有一件事是在您的 CTOR 中填充此地图,这将确保您不会因为注册到此静态地图而丢失任何对象。

【讨论】:

    猜你喜欢
    • 2011-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多