c++ - 用两个参数重载 operator bool 是什么意思?

标签 c++ casting overloading operator-keyword

在一个作业中,我被告知要为某个类实现 bool operator()(const T&, const T&)。重载 bool operator 意味着允许将对象隐式转换为 bool。用两个参数重载它是什么意思?这些参数是如何在调用端传递的?这是如何使用的?

最佳答案

那不是“operator bool”,而是 operator(),带有两个 T 参数,返回一个 bool。换句话说,它是一个二元谓词。你可以像这样使用它:

struct Foo
{
  bool operator()(const T&, const T&); // should probably be const
};

... 
Foo f;
T t1, t2;
bool b = f(t1, t2);

关于c++ - 用两个参数重载 operator bool 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26218757/

相关文章:

c++ - std::list、std::vector 方法和 malloc()

c - C中的函数指针问题

iphone - 重载iPhone "GO"按钮来执行操作

C# 在红外线 Action 中抛出使其在解析重载时成为 Function

c++ - 学习Boost.Spirit : parsing INI

c++ - 为什么这个程序不打印垃圾值

c++ - 使用 libc 的 SIGSEGV 回溯是重复条目

php - 类型转换为 boolean 值

c# - 转换到界面

c++ - 跨多个文件的好友功能