当运算符超载时,>,<和==,我们可以使用类成员函数而不是友元函数吗?

时间:2015-08-20 13:54:41

标签: c++

因为我看到返回类型为bool 我们可以将它用作成员函数而不是在类中使它成为友元函数吗?

如下: friend bool operator >(String& string1, String &string2);

我们可以写成: bool operator>(string &string2);

3 个答案:

答案 0 :(得分:2)

  

我们可以写成:bool operator>(string& string2);

结果不一致,

使这些比较函数成员函数可以破坏在自由函数时本来可以工作的代码。

功能参数隐式转化约束无法应用于this

使用成员函数比较器,如果存在可以隐式转换为X类型的某种类型String

String() == X()

会很好,但

X() == String()

不会。

答案 1 :(得分:1)

首选课堂成员的独立功能。特别是,我发现非会员,非朋友<一般情况下更合适。

答案 2 :(得分:0)

你可以简单地尝试

此外,这与返回类型bool没有任何关系。