类成员没有附加c ++

时间:2012-08-16 11:39:15

标签: c++ xml class types members

我从XML文件读取数据,根据xml文件中的标记,数据附加到类成员变量。

例如,xml文件中的值是否包含“!”,在这种情况下无效,因此我无法接受该值。 因此该值的成员变量为空。

但是一些成员变量的类型是其他类或整数或布尔值。如何检查这些值是否已设置?因为那些没有函数emtpy()

3 个答案:

答案 0 :(得分:2)

如果它们不是可选的,则必须使解析机制在不存在时出错。否则,您可以使用类似boost::optional的内容。

答案 1 :(得分:0)

您可以在XML读取期间检查XML值以及它是否包含"!",为其所有变量分配默认值。

e.g。将ptr设置为nullptr,将布尔值设置为false,将int设置为0-1

尽可能使用const默认值,这将使您的代码更清晰,更易于维护。

答案 2 :(得分:0)

无法在运行时检测是否已明确设置变量。这就是为什么有些编译器会给你一个警告(而不是错误)的原因,如果他们怀疑某个变量可能未被初始化使用。

程序员有责任跟踪已设置的变量。执行此操作的低级方法是使用指针,将它们初始化为0,当它们指向某些初始化的内存时更改它们,并在它们指向的对象被删除时将它们更改回0。

在C ++中,您可以使用Boost.Optional来避免以这种方式搞乱指针。