簡體   English   中英

創建一個類似於 bool 的變量類型

[英]Creating a variable type similar to bool

我需要幫助,因為我需要使用行為類似於 bool 但允許“未定義”值 (x) 的變量類型。 我不認為這種類型存在。 我想我應該為這個新類型編寫一個類,並使用這個類的對象作為我的變量。 我不太擅長編碼(我在學校做這個)所以我對同一個類的對象如何相互交互感到困惑。

我的意思是:如果我有兩個 bool 變量,我知道如果我需要知道“a AND b”的結果,我可以寫“c = a && b”,就是這樣。 但這對一個班級如何運作? 我是否必須為每個可能的操作編寫一個類方法? 這些函數的參數是什么? 我認為它可能是該類的兩個對象,但我不知道它是否有意義。

我真的很感激任何形式的幫助。

對不起,我的英語和編碼技能很差。

查看Boost tribool類型。

它代表所有truefalseundefined狀態。

它或多或少像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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM