2015-06-04 70 views
0

我從來沒有見過這個......只是很想知道「return〜Result(0)」是做什麼的。在C++中,「return〜Result(0)」是什麼意思?

Simple::Result Screen::pickPoint(const Point& Point) const 
    { 

    if(scnr.hasPoint()) 
     return scnr.getIndex(); 
    else 
     return ~Result(0); 
    } 
+3

http://en.cppreference.com/w/cpp/language/operator_arithmetic#Bitwise_logic_operators – user657267

+0

感謝操作符重載,它可以做任何事情......需要更多的代碼! – hyde

回答

2

假設Simple::Result已超載按位不符(~)。這將調用Simple::Result類中的重載運算符並返回結果。

如果~操作執行按位不操作,該函數應該返回一個Simple::Result這是全1(二進制)時scnr.hasPoint返回false。

你可以閱讀更多關於按位運算符here

+0

這肯定是它可能工作的一種方式,但還有另一種方法:'Result'可能有一個重載ala'operator int()',允許隱式轉換爲一個類型('int'是許多中的一個),支持'~' 。 –