[英]Creating a variable type similar to bool
我需要幫助,因為我需要使用行為類似於 bool 但允許“未定義”值 (x) 的變量類型。 我不認為這種類型存在。 我想我應該為這個新類型編寫一個類,並使用這個類的對象作為我的變量。 我不太擅長編碼(我在學校做這個)所以我對同一個類的對象如何相互交互感到困惑。
我的意思是:如果我有兩個 bool 變量,我知道如果我需要知道“a AND b”的結果,我可以寫“c = a && b”,就是這樣。 但這對一個班級如何運作? 我是否必須為每個可能的操作編寫一個類方法? 這些函數的參數是什么? 我認為它可能是該類的兩個對象,但我不知道它是否有意義。
我真的很感激任何形式的幫助。
對不起,我的英語和編碼技能很差。
查看Boost tribool
類型。
它代表所有true
、 false
和undefined
狀態。
它或多或少像std::optional<bool>
。 你也可以在一個類中自己實現它。 您將需要了解運算符重載的工作原理。
class SpecialBoolean {
public:
SpecialBoolean() : state(Undefined) {}
SpecialBoolean(bool value) : state(value? True : False) {}
SpecialBoolean operator&& (SpecialBoolean other) const {
if( state == Undefined || other.state == Undefined)
return SpecialBoolean();
else
return SpecialBoolean(state == True && other.state == True);
}
private:
enum States { False = 0, True = 1, Undefined = 2 };
States state;
};
// Test:
SpecialBoolean value = SpecialBoolean() && SpecialBoolean(false);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.