gpt4 book ai didi

c++ - 设计一个可以在 if 语句中测试的类?

转载 作者:太空狗 更新时间:2023-10-29 20:15:58 26 4
gpt4 key购买 nike

我有我的课,在那里我重载了 ! 运算符:

class obj
{
public:

bool operator!() const
{ return this->str.length() == 0; }

private:

string str;

};

使用 ! 运算符我想检查 obj 有效性,所以:

obj o;

// if o is not a valid object
if(!o)
cerr << "Error";

现在我想有可能做到这一点:

// if o is a valid object
if(o)
cout << "OK";

我该怎么办?

最佳答案

使用 C++11,您可以通过 explicit operator bool 来做到这一点:

explicit operator bool() const {
return !!*this;
}

如果您需要将对象显式转换为 bool(由 if 语句自动完成),则会调用此运算符。该实现通过在接收方对象上调用您的 operator ! 来工作,然后返回相反的结果。

希望这对您有所帮助!

关于c++ - 设计一个可以在 if 语句中测试的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11266550/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com