C++ IOS::operator!() 函式



C++ 的 std::ios::operator!() 函式是一個使用者定義的運算子,允許類的物件與邏輯非運算子 (!) 一起使用。透過實現此運算子,我們可以自定義該類例項的非運算子的工作方式。

例如,如果一個物件表示成功狀態,則當狀態為失敗時,operator!() 可能會返回 true。

語法

以下是 std::ios::operator!() 函式的語法。

bool operator!() const;

引數

它不接受任何引數。

返回值

如果 failbit 或 badbit 被設定,則返回 true,否則返回 false。

異常

如果丟擲異常,則流不會發生任何更改。

資料競爭

訪問流物件。

同時訪問同一個流物件可能會導致資料競爭。

示例

讓我們來看下面的例子,我們將過載 operator!() 函式以返回布林值的否定。

#include <iostream>
class a
{
public:
    a(bool value) : b(value) {}
    bool operator!() const
    {
        return !b;
    }
private:
    bool b;
};
int main()
{
    a x1(true);
    a x2(false);
    std::cout << "Result Of Object1 : " << !x1 << std::endl;
    std::cout << "Result Of Object2 : " << !x2 << std::endl;
    return 0;
}

輸出

以上程式碼的輸出如下:

Result Of Object1 : 0
Result Of Object2 : 1

示例

考慮以下示例,我們將檢查物件是否為空。

#include <iostream>
#include <string>
class a
{
public:
    a(const std::string& c) : b(c) {}
    bool operator!() const
    {
        return b.empty();
    }
private:
    std::string b;
};
int main()
{
    a x1("");
    a x2("TutorialsPoint");
    std::cout << "Result : " << !x1 << std::endl;
    std::cout << "Result : " << !x2 << std::endl;
    return 0;
}

輸出

以下是以上程式碼的輸出:

Result : 1
Result : 0
ios.htm
廣告
© . All rights reserved.