如何在C ++中在运行时向对象添加新属性?

时间:2012-10-27 22:45:19

标签: c++ properties

在C#中我们可以使用这样的东西:

MyClass c = new MyClass();
c.Properties.Add("another property", "another value");

我需要在C ++中这样做。我正在使用VS 2012.有什么想法吗?

已编辑:知道,我可以使用地图或任何列表将属性保存到对象,例如:

void ObjectProperty::addItem(string key, XProperty p) 
{
     _object[key] = p;
}

1 个答案:

答案 0 :(得分:6)

您不能只为对象添加“属性” - 对象的概念在编译时完全完成。在运行时,CPU不知道给定的内存块被称为“对象”或您决定调用类的实例的任何内容。

(这本身就很有趣,因为C ++没有属性)

如果您只想要按名称引用的数据字段,那么任何标准关联容器都应该满足您的需求。