gpt4 book ai didi

c++ - 成员变量不同 "kinds"的区别

转载 作者:行者123 更新时间:2023-11-30 01:33:38 24 4
gpt4 key购买 nike

我正在解析大型 XML 定义文件。为实现这一点,我已经开始为您在 xml 文件中遇到的每种“类型”创建类。

<Element Factor="10">Whatever</Element>

目前我将 XML 文件中的每个 type 放在它自己的类中,并带有一些运算符和类型的成员。

但是,其中一些类型既有“子元素”又有“属性”。

即:

<MySimpleType min="20" max="100">
<name>MyName</name>
<SomeOtherElement>xxxx</SomeOtherElement>
</Mysimpletype>

目前这个类看起来像这样:

class MySimpleType{
std::string MyName;
TSomeOtherElement SomeOtherElement;
int min;
int max;
}

我想知道是否有一种方法可以对类成员进行注释,以便明确所讨论的成员是属性还是元素。

元素可以有不同的类型(可能是另一个自定义类),属性大多是内置的或 ADT 的。

有没有办法清楚地将成员标记为“元素”或“属性”?

(如果有关系,我使用的是带有内置编译器的 Visual Studio 2015,所以我使用的是 c++11)

最佳答案

您可能有一些包装类型来帮助识别:

template <typename T>
struct attribute { T value; };

等等

struct MySimpleType
{
std::string MyName;
TSomeOtherElement SomeOtherElement;
attribute<int> min;
attribute<int> max;
};

您可以丰富包装类,使其表现得更像底层类型 (operator T&(), operator = (const T&), ...)

关于c++ - 成员变量不同 "kinds"的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58217326/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com