根据 c++ 中的用户输入动态创建类的结构和变量



我是这个网站(和 c++)的新手,所以如果这是一个基本问题,请原谅我 - 到目前为止,我已经用谷歌搜索并浏览了这个网站但没有成功,所以任何人都可以提供的任何帮助将不胜感激。

我想为应用程序添加一些功能,允许用户完全定义对象的结构和内容。例如,用户将看到一个配置屏幕,允许他们列出对象的每个属性 - 鉴于我有限的知识,我认为这可以通过使用类来实现:

Class Name:        CustomClassName
Class Property 1:  property1Name    property1DataType    property1DefaultValue
...
Class Property n:  propertynName    propertynDataType    propertynDefaultValue
然后,

用户将能够点击一个按钮来保存他们的自定义配置,然后程序可以将该配置引用为类:

class CustomClassName
{
    property1DataType property1Name = property1DefaultValue;
    ...
    propertynDataType propertynName = propertynDefaultValue;
}

我什至不确定使用类是否可以做到这一点,所以如果有另一种机制可以促进这一点,我愿意接受建议!

你不能在运行时创建类,但由于动态类型本质上是静态类型的一个子集,你可以伪造它。

从键入1 Property开始:

using Property = variant<int, float, string>;

一个简单的"动态"类可能如下所示:

class DynamicClass {
    std::map<std::string, Property> properties;
public:
    Property const& operator[](std::string const&) const
    Property operator[](std::string const&);
};

用:

DynamicClass d;
d["myInt"] = 5;

1 示例实现。variant的内部结构应根据您的特定目的量身定制。如果你需要一个开放的变体,而你事先不知道所有可能的类型,这会变得更加复杂,需要类似的东西 any .

相关内容

  • 没有找到相关文章

最新更新