mat*_*ler 2 c++ operator-overloading
受到另一个关于java脚本语言的问题的启发.可以表达
 (a==1)&&(a==2)&&(a==3)
在C++中评估为true?(如果是的话,它真的有用吗?)
Som*_*ken 10
是的,它可以:
class Foo
{
    public:
    bool operator==(int a)
    {
        return true;
    }
};
然后,让我们a的类型Foo和瞧.
这真的有用吗?我真的没有看到它有用.
表达式可以在C++中评估为true吗?
是的,没有什么不可能......
struct A {
    int x = 0;
};
bool operator==(A& a, int num) {
    return ++a.x == num;
}
然后:
if ((a == 1) && (a == 2) && (a == 3)) {
    std::cout << "meow" << std::endl;
}
打印meow.
但是我不知道这种奇怪的重载的任何实际用法,并且希望永远不会在生产中看到这样的代码.