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

标签 c++ properties

在 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/

相关文章:

c# - 将自动属性转换为完整属性

python - 方法与属性哪个更快?

c++ - 何时删除复制构造函数

actionscript-3 - 在 Actionscript 3 中创建只读属性

c++ - 字符串不命名类型

c++ - 在控制台应用程序中显示图像

Objective-C,带有属性的接口(interface)声明

java - 将配置文件转换为 HTML

c++ - #ifdef Q_OS_WIN32,但 windows 函数未在此范围内声明

c++ - 快速动态类型转换进度