我從XML文件讀取數據,這取決於xml文件中的標記,數據被附加到類成員變量。class member is not attached C++
是否有可能,例如,xml文件中的值包含「!」,在這種情況下這是無效的,因此我不能接受該值。 因此,該值的成員變量爲空。
但某些成員變量的類型是其他類或整數或布爾值。我如何檢查這些值是否設置?由於沒有這些功能emtpy()
。
我從XML文件讀取數據,這取決於xml文件中的標記,數據被附加到類成員變量。class member is not attached C++
是否有可能,例如,xml文件中的值包含「!」,在這種情況下這是無效的,因此我不能接受該值。 因此,該值的成員變量爲空。
但某些成員變量的類型是其他類或整數或布爾值。我如何檢查這些值是否設置?由於沒有這些功能emtpy()
。
如果它們不是可選的,那麼當它們不存在時,必須導致解析機制出錯。否則,你可以使用類似boost::optional
的東西。
在運行時無法檢測變量是否已被明確設置。這就是爲什麼有些編譯器會給你一個警告(不是錯誤),如果他們懷疑可能會使用未初始化的變量。
程序員有責任跟蹤已設置的變量。低級別的做法是使用指針,將它們初始化爲0,當它們指向一些已初始化的內存時更改它們,並在它們指向的對象被刪除時將它們更改回0。
在C++中,您可以使用Boost.Optional來避免用這種方法搞亂指針。
對不起 - 沒有示例代碼和您正在使用的解析器,沒有人可以幫助您。 – 2012-08-16 11:41:56
請提供一些代碼,因爲您的描述充其量是令人困惑的,並且根本無法提供建設性的幫助。 – Graeme 2012-08-16 11:52:41
不贊同downvotes。問題中唯一的問題就是術語。我們不會將數據「附加」到成員變量中;我們_assign_它,或者我們_initialize_他們。我們可以檢查'int'是否被初始化,這完全可以。 – MSalters 2012-08-16 13:06:50