zoukankan      html  css  js  c++  java
  • C++语法小记---重载逻辑操作符

    重载逻辑操作符
    • 不建议重载逻辑操作符

    • 原因:无法实现逻辑操作符的短路功能(即:不需要计算完全部表达式就可以得出结果)

    • 逻辑操作符:|| &&

    • 操作符重载本质上是函数调用,而进行函数调用之前一定要计算出所有参数的值,然后才能调用函数,所以无法实现短路功能

     1 #include<iostream>
     2 #include<string>
     3 
     4 using namespace std;
     5 
     6 class Test
     7 {
     8     int i;
     9 public:
    10     Test(int i = 0)
    11     {
    12         this->i = i;
    13     }
    14     
    15     int getI()
    16     {
    17         return i;
    18     }
    19 };
    20 
    21 bool operator && (Test& l, Test& r)
    22 {
    23     return l.getI() && r.getI();
    24 }
    25 
    26 bool operator || (Test& l, Test& r)
    27 {
    28     return l.getI() || r.getI();
    29 }
    30 
    31 Test& print(Test& t)
    32 {
    33     cout<<"Test print(Test t) t.i = "<<t.getI()<<endl;
    34     return t;
    35 }
    36 
    37 int main()
    38 {
    39     Test t1(0);
    40     Test t2(1);
    41     
    42     if(print(t1) && print(t2))
    43     {
    44         cout<<"true"<<endl;
    45     }
    46     else
    47     {
    48         cout<<"false"<<endl;
    49     }
    50     
    51     return 0;
    52 }
    53 //输出结构,没有实现短路功能
    54 //Test print(Test t) t.i = 1
    55 //Test print(Test t) t.i = 0
    56 //false
  • 相关阅读:
    python程序2:购物车
    挖矿病毒watchbog处理过程
    docker从入门到精通再到放弃
    python基础应用---列表应用
    python基本应用--三元应用
    由java派生出来的证书错误
    python基础应用---格式化输出
    test04
    在博客中模拟Typora中的Dark风格
    Test03 TextBox
  • 原文地址:https://www.cnblogs.com/chusiyong/p/11295296.html
Copyright © 2011-2022 走看看