cpp运算符重载-关系运算符

05-5 运算符重载-关系运算符

关系运算符包括:大于(>)、小于(<)、等于(==)、不等于(!=)、大于或等于(>=)、小于或等于(<=)。

关系运算符重载的作用:利用关系运算符,可以让两个自定义类型的对象进行对比。

我们主要学习的是等于和不等于的判断。但是大于小于等等也是可以的。

完成关系运算符重载有两种方法:

  • 在成员函数里面实现重载。
  • 在全局函数里面实现重载。

接下来,我们以等于(==)为例子详细记录一下。

  1. 在成员函数里面实现重载。

    class test 
    {
    public:
    int m_A;
    int m_B;
    test()
    {
        m_A = 10;
        m_B = 20;
    }
    bool operator==(class test& p)
    {
        if (m_A == p.m_A && m_B == p.m_B)
        {
            return true;
        }
        else
        {
            return false;
        }
    }
    };

    提示:在 c++中,&&表示的是and(与),||表示的是or(或)。

    在这里,我们创建了一个类。这个类中有m_Am_B两个成员属性。如果存在两个变量使得两个成员属性都相同,我们就认为这两个变量是相同的。

    因为一般的关系运算符只有或者两种表达形式,在 c++中就是布尔类型(bool),所以我们使用布尔(bool)作为返回值。

    提示:在 c++中,布尔类型:0表示false(否),1(或者其他数字)表示true(是)。

    我们运行一下:

    int main()
    {
    class test t1;
    class test t2;
    cout << (t1 == t2) << endl;
    return 0;
    }

    运行结果:(环境:Windows11(arm/Apple M VM)/Visual Studio 2022/Debug/arm64)

    1
  2. 在全局函数里面实现重载。

    bool operator==(class test& p1, class test& p2)
    {
    if (p1.m_A == p2.m_A && p1.m_B == p2.m_B)
    {
        return true;
    }
    else
    {
        return false;
    }
    }

    当然如果是属性是私有的(private),记得添加友元(friend)或者提供公共权限(public)下的接口哦。

  3. 其他的关系运算符(以全局函数为例):

    1. 等于(==

      bool operator==(class test& p1, class test& p2)
      {
      if (p1.m_A == p2.m_A && p1.m_B == p2.m_B)
      {
          return true;
      }
      else
      {
          return false;
      }
      }
    2. 不等于(!=

      bool operator!=(class test& p1, class test& p2)
      {
      if (p1.m_A != p2.m_A && p1.m_B != p2.m_B)
      {
          return true;
      }
      else
      {
          return false;
      }
      }
    3. 大于(>

      bool operator!=(class test& p1, class test& p2)
      {
      if (p1.m_A > p2.m_A && p1.m_B > p2.m_B)
      {
          return true;
      }
      else
      {
          return false;
      }
      }
    4. 小于(<

      bool operator!=(class test& p1, class test& p2)
      {
      if (p1.m_A < p2.m_A && p1.m_B < p2.m_B)
      {
          return true;
      }
      else
      {
          return false;
      }
      }
    5. 大于或等于(>=

      bool operator!=(class test& p1, class test& p2)
      {
      if (p1.m_A >= p2.m_A && p1.m_B >= p2.m_B)
      {
          return true;
      }
      else
      {
          return false;
      }
      }
    6. 小于或等于(<=

      bool operator!=(class test& p1, class test& p2)
      {
      if (p1.m_A <= p2.m_A && p1.m_B <= p2.m_B)
      {
          return true;
      }
      else
      {
          return false;
      }
      }
文章「cpp运算符重载-关系运算符」,由本站用户「Admin」发布。文章仅代表Admin观点,不代表本站立场。
页面网页地址「https://xiaozhiyuqwq.top/p/917」。
如您对文章及其附件提出版权主张,或进行引用转载等,请查看我们的【版权声明】
无评论:-)

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇