广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++逻辑操作符怎么使用
  • 152
分享到

C++逻辑操作符怎么使用

2023-06-30 17:06:44 152人浏览 独家记忆
摘要

本篇内容主要讲解“c++逻辑操作符怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++逻辑操作符怎么使用”吧!一、逻辑运算符的原生语义操作数只有两种值( true和 false )逻辑表

本篇内容主要讲解“c++逻辑操作符怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++逻辑操作符怎么使用”吧!

一、逻辑运算符的原生语义

  1. 操作数只有两种值( true和 false )逻

  2. 辑表达式不用完全计算就能确定最终值

  3. 最终结果只能是 true 或者 false

下面看一个逻辑表达式的代码:

#include <iOStream>#include <string>using namespace std;int func(int i){    cout << "int func(int i): i = " << i << endl;    return i;}int main(){    if (func(0) && func(1))    {        cout << "Result is true!" << endl;    }    else     {        cout << "Result is False!" << endl;    }    cout << endl;    if (func(0) || func(1))    {        cout << "Result is true!" << endl;    }    else     {        cout << "Result is False!" << endl;    }     return 0;}

输出结果如下:

C++逻辑操作符怎么使用

这就是逻辑操作符的短路规则,可以参照我之前写的详细讲解逻辑运算符的使用

二、重载逻辑操作符

逻辑操作符可以重载吗?重载逻辑操作符有什么意义?

下面看一个重载逻辑操作符示例:

#include <iostream>using namespace std;class Test{    int mValue;public:    Test(int v)    {        mValue = v;    }    int value() const    {        return mValue;    }};bool operator &&(const Test& l, const Test& r){    return l.value() && r.value();}bool operator ||(const Test& l, const Test& r){    return l.value() || r.value();}Test func(Test i){    cout << "Test func(Test i): i.value() = " << i.value() << endl;    return i;}int main(){    Test t0(0);    Test t1(1);    if (func(t0) && func(t1))    {        cout << "Result is true!" << endl;    }    else    {        cout << "Result is false!" << endl;    }    cout << endl;    if (func(t0) || func(t1))    {        cout << "Result is true!" << endl;    }    else    {        cout << "Result is false!" << endl;    }}

输出结果如下:

C++逻辑操作符怎么使用

按照短路法则,func(t0) && func(t1) 应该只执行 func(t0),这里却输出了func(t0) 和 func(t1) 运行后的值,这是为什么呢?且看下面解析。

问题的本质分析

  1. C++ 通过函数调用扩展操作符的功能

  2. 进入函数体前必须完成所有参数的计算

  3. 函数参数的计算次序是不定的

  4. 短路法则完全失效

逻辑操作符重载后无法完全实现原生的语义。

上述代码等效写法如下:

#include <iostream>using namespace std;class Test{    int mValue;public:    Test(int v)    {        mValue = v;    }    int value() const    {        return mValue;    }};bool operator &&(const Test& l, const Test& r){    return l.value() && r.value();}bool operator ||(const Test& l, const Test& r){    return l.value() || r.value();}Test func(Test i){    cout << "Test func(Test i): i.value() = " << i.value() << endl;    return i;}int main(){    Test t0(0);    Test t1(1);    if (operator && (func(t0), func(t1)))    {        cout << "Result is true!" << endl;    }    else    {        cout << "Result is false!" << endl;    }    cout << endl;    if (operator || (func(t0), func(t1)))    {        cout << "Result is true!" << endl;    }    else    {        cout << "Result is false!" << endl;    }}

输出结果和上面一样:

C++逻辑操作符怎么使用

将func(t0) && func(t1) 改写成operator && (func(t0), func(t1)),就不难理解为什么了。核心就两点:

进入函数体前必须完成所有参数的计算

函数参数的计算次序是不定的

一些有用的建议

  • 实际工程开发中避免重载逻辑操作符

  • 通过重载比较操作符代替逻辑操作符重载

  • 直接使用成员函数代替逻辑操作符重载

  • 使用全局函数对逻辑操作符进行重载

到此,相信大家对“C++逻辑操作符怎么使用”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: C++逻辑操作符怎么使用

本文链接: https://www.lsjlt.com/news/330607.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C++逻辑操作符怎么使用
    本篇内容主要讲解“C++逻辑操作符怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++逻辑操作符怎么使用”吧!一、逻辑运算符的原生语义操作数只有两种值( true和 false )逻辑表...
    99+
    2023-06-30
  • C++超详细讲解逻辑操作符
    目录一、逻辑运算符的原生语义二、重载逻辑操作符三、小结一、逻辑运算符的原生语义 操作数只有两种值( true和 false )逻辑表达式不用完全计算就能确定最终值最终结果只能是 tr...
    99+
    2022-11-13
  • js逻辑操作符有什么用
    这篇文章主要为大家展示了“js逻辑操作符有什么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“js逻辑操作符有什么用”这篇文章吧。1、逻辑操作符与,由两个‘&’字符组成(&&am...
    99+
    2023-06-25
  • vue逻辑判断符怎么使用
    这篇文章主要讲解了“vue逻辑判断符怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue逻辑判断符怎么使用”吧! vue...
    99+
    2022-10-19
  • Oracle数据库中如何使用逻辑操作符
    Oracle数据库中如何使用逻辑操作符,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。在Oracle数据库中逻辑操作符的使用方法详解,在WH...
    99+
    2022-10-18
  • JavaScript中怎么实现逻辑运算符短路操作
    今天就跟大家聊聊有关JavaScript中怎么实现逻辑运算符短路操作,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。js逻辑运算符有三个:逻辑非!、逻...
    99+
    2022-10-19
  • C语言逻辑运算符如何使用
    今天小编给大家分享一下C语言逻辑运算符如何使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、&& 与 I...
    99+
    2023-06-30
  • php逻辑运算符怎么用
    这篇文章主要介绍“php逻辑运算符怎么用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“php逻辑运算符怎么用”文章能帮助大家解决问题。在php中,逻辑运算符是进行逻辑运算的一种符号,可用来组合逻辑运...
    99+
    2023-06-29
  • 逻辑运算符怎么在Java中使用
    逻辑运算符怎么在Java中使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一、前言逻辑运算符 左右都是布尔类型的操作数,表达式的结果也是布尔类型 true...
    99+
    2023-06-15
  • python逻辑运算符and怎么用
    这篇文章将为大家详细讲解有关python逻辑运算符and怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。说明and逻辑与,一假则假,都真才真,可以对符号两侧的值进行与运算。只有在符号两侧的值都为Tru...
    99+
    2023-06-20
  • javascript逻辑运算符||和&&怎么使用
    这篇文章主要讲解了“javascript逻辑运算符||和&&怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“javascript逻辑运算符||和&&怎么...
    99+
    2023-06-04
  • C语言详细讲解逻辑运算符的使用
    目录一、&& 与 II 分析二、!分析三、小结一、&& 与 II 分析 下面的程序运行结束后,i, j,k 的值分别为多少? #include <...
    99+
    2022-11-13
  • php中&&和||逻辑运算符怎么使用
    本篇内容主要讲解“php中&&和||逻辑运算符怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php中&&和||逻辑运算符怎么使用”吧!一. &&a...
    99+
    2023-07-04
  • 如何用Bash编程实现逻辑操作符和shell扩展
    这篇文章将为大家详细讲解有关如何用Bash编程实现逻辑操作符和shell扩展,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。逻辑操作符Bash 中有大量的用于不同条件表达式的逻辑操作符。最基本的是 if 控...
    99+
    2023-06-16
  • C语言操作符++和--怎么使用
    本篇内容介绍了“C语言操作符++和--怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、++与--操作符的本质++ 和 -- 操作符...
    99+
    2023-06-30
  • Java逻辑控制怎么使用
    这篇“Java逻辑控制怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Java逻辑控制怎么使用”文章吧。一,块作用域首...
    99+
    2023-06-30
  • Python3中的逻辑运算符与成员运算符怎么用
    今天小编给大家分享一下Python3中的逻辑运算符与成员运算符怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下...
    99+
    2022-10-19
  • web前端逻辑运算怎么使用
    本篇内容介绍了“web前端逻辑运算怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  逻辑 与 &&  va...
    99+
    2023-06-04
  • C#中怎么操作符重载应用
    今天就跟大家聊聊有关C#中怎么操作符重载应用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。在C#中,操作符==是对象类的非虚的(操作符不可以为虚的)方法,它是按引用比较的。当你构建一...
    99+
    2023-06-17
  • C#中怎么利用Specification模式定制业务逻辑
    这篇文章给大家介绍C#中怎么利用Specification模式定制业务逻辑,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。这里将要讲述的是怎样用C#中的Specification模式实现可定制的业务逻辑,也就是避免传统w...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作