在 C# 中我们可以使用这样的东西:
MyClass c = new MyClass();
c.Properties.Add("another property", "another value");
我需要在 C++ 中执行此操作。我正在使用 VS 2012。有什么想法吗?
已编辑:知道,我可以使用 map 或任何列表将属性保存到对象,例如:
void ObjectProperty::addItem(string key, XProperty p)
{
_object[key] = p;
}
最佳答案
您不能只为对象添加“属性”——对象的概念完全在编译时完成。在运行时,CPU 不知道给定的内存块称为“对象”或您决定调用类实例的任何内容。
(这本身就很有趣,因为 C++ 没有属性)
如果您只想要一个按名称引用的数据字段,任何标准关联容器都可以满足您的需要。
关于c++ - 如何在运行时在 C++ 中向对象添加新属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13104830/