1
如果我有一個包含enum
成員的類,並且該成員未用任何數據初始化。未初始化的枚舉在C++ MFC中的值
我想檢查是否已經放置了一些值(我正在爲班級驗證所有成員已經初始化的驗證機制),我可以比較enum
成員與什麼? NULL
?或者它收到0(0就像第一個字段,所以對任何人都不會有好處)。
如果我有一個包含enum
成員的類,並且該成員未用任何數據初始化。未初始化的枚舉在C++ MFC中的值
我想檢查是否已經放置了一些值(我正在爲班級驗證所有成員已經初始化的驗證機制),我可以比較enum
成員與什麼? NULL
?或者它收到0(0就像第一個字段,所以對任何人都不會有好處)。
你不能比較一個未初始化的變量和任何東西,因爲它是未定義的行爲來讀取它。
因此,最安全的方法是將UNSET
狀態保留爲enum
的一部分,將其初始化爲此狀態,並將其與此狀態進行比較。
這真的是未定義的行爲?我認爲這是「不明確的價值」。 –
不是,UB。如果你想要某種未初始化的值,你必須自己初始化它。 – Puppy
有趣......因此它與C不同。 –