如果我们想在不使用strcmp()
函数的情况下比较两个字符串,那么我们可以重载==
运算符来比较两个字符串吗?
我想你的意思是超载operator==
与C风格的字符串,那么答案是没有。的运算符重载应该被用于定制运营商的操作数用户定义的类型。
从标准,$ 13.5 / 6重载的运算符[over.oper](强调我的)
运算符应为非静态成员函数或具有至少一个参数的非成员函数,该参数的类型为类,对类的引用,枚举或对枚举的引用。
请注意,如果您的意思是std::string
,答案仍然是“否”。STL提供了operator==
for的实现,std::string
您不能修改它。实际上,您根本不需要超载,只需使用它就可以了。
编辑
如果您想为自己的课程重载它,那很好。如
Class X {
//...
};
bool operator==(const X& lhs, const X& rhs) {
// do the comparison and return the result
}
然后
X x1, x2;
//...
if (x1 == x2) {
//...
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句