是否有可能有一個類的對象返回真/假值,所以我可以做這樣的事情:如何從類對象返回值?
MyClass a;
...
if (a)
do_something();
我可以完成(幾乎)我想通過重載!運營商:
class MyClass {
...
bool operator!() const { return !some_condition; };
...
}
main()
MyClass a;
...
if (!a)
do_something_different();
,但我還沒有找到一種方法來重載這將是「空」操作符。當然,使用==運算符來檢查真/假也是可能的,事實上我到目前爲止一直在做這些事情。
'bool'運算符比'void *'更具體。你能舉出一個涉及對bool進行投擲的錯誤示例嗎? – Dacav 2010-08-08 12:28:17
謝謝。這工作得很好,除了我必須將some_condition投入(void *)之外。然而,每個人在這裏建議超載布爾(),也可以工作得很好,使代碼看起來更容易理解:)能否請您給的,事情可能出錯與解決方案的例子,這樣我就可以更好地理解的好處你的建議? – 2010-08-08 12:32:11
@Dacav我不知道你的男人用更具體的 - 一個void *不能是算術表達式的一部分,這樣的類不能在形式'A + 1',這是我建議可以使用也可能不是OP想要。 – 2010-08-08 12:33:17