例如,我已经定义的类为了在if语句中使用我的类,重载哪一个运算符?
class MyClass
{
....
};
哪个运营商我要在为了做到与MyClass
对象如果比较超载?
如:
MyClass cc;
if (cc) // compile error
{
//do some stuff
}
我试着用
bool operator == (int value) ; //guess the if() will call this
或
bool operator != (int value) ;
但两者给我一个编译错误!
@FrédéricHamidi:在C++ 11的存在下,这个问题的答案看起来不同(现在建议使用明确的运算符bool而不是安全bool惯用法)。我不知道SO如何处理这种信息随着时间的变化...... – PlasmaHH 2013-03-25 14:03:57
你的例子没有比较。如果你想隐式转换到'bool',定义'operator bool()'。顺便说一句,你永远不会覆盖操作员。您可以覆盖或超载一个。这些术语有不同的含义。 – 2013-03-25 14:04:55
@PlasmaHH,在David Rodriguez的回答下的评论中指出。这应该没问题。 – 2013-03-25 14:06:07