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
广告