我有一个叫做AString
的类。这是非常基本的:
class AString
{
public:
AString(const char *pSetString = NULL);
~AString();
bool operator==(const AString &pSetString);
...
protected:
char *pData;
int iDataSize;
}
现在,我想编写这样的代码:
AString *myString = new AString("foo");
if (myString == "bar") {
/* and so on... */
}
但是,现有的比较运算符仅支持
if (*myString == "bar")
如果我省略该星号,则编译器会感到不满意。
有没有一种方法允许比较运算符将
*AString
与const char*
进行比较? 最佳答案
不,那里没有。
要重载operator==
,您必须提供用户定义的类型作为操作数之一,并且指针(AString*
或const char*
)不合格。
而且,当比较两个指针时,编译器具有非常合适的内置operator==
,因此它不会考虑将参数之一转换为类类型。
关于c++ - 如何重载operator ==()以获取指向类的指针?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3871039/