0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

C++之操作重载符学习的总结(二)

电子设计 来源:电子设计 作者:电子设计 2020-12-24 16:26 次阅读

一、完善的复数类:

在上一篇文章里面我们已经提到了操作符重载的概念和使用,同时也举例了一个数学里面的复数操作,从一开始使用友元到使用操作符重载全局函数,再到使用操作符重载类成员函数,这样一步步演变而成我们最终实现了复数的实部加实部,虚部加虚部;而且当时我们只讲解了一个操作重载符“+”,所以为了完善学习体系,咋们今天继续把剩下的操作重载符总结完,以免知识体系零零散散。那么复数完善的操作符还有那些呢,其实很简单就能能想到,和对数学里面的实数操作一样,加减乘除肯定是少不了嘛,下面是汇总的操作符总结:

运算:+、-、*、/

比较:==、!=

赋值: =

求模:modulus

2、各操作符重载的形式:

代码实现:

test.h头文件:

test.cpp文件:

main.cpp文件:

运行结果:

上面设计到一些数学知识,比如复数的乘法和除法运算:

乘法:(a+bi)(c+di)=(ac-bd)+(bc+ad)i

除法:(a+bi)/(c+di)=(ac+bd)/cc+dd +(bc-ad)/cc +dd

3、注意事项:

C++规定赋值操作符"="只能重载为成员函数

操作符重载不能改变原操作符的优先级

操作符重载不能改变操作数的个数

操作符重载不应改变操作符的原有语义

二、总结:

复数的概念可以通过自定义类实现

复数中的运算操作可以通过操作符重载实现

赋值操作符只能通过成员函数实现

操作符重载的本质为函数定义

审核编辑:符乾江
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 可编程逻辑
    +关注

    关注

    7

    文章

    514

    浏览量

    44072
  • C++
    C++
    +关注

    关注

    22

    文章

    2104

    浏览量

    73494
收藏 人收藏

    评论

    相关推荐

    C7000优化C/C++编译器

    电子发烧友网站提供《C7000优化C/C++编译器.pdf》资料免费下载
    发表于 10-30 09:45 0次下载
    <b class='flag-5'>C</b>7000优化<b class='flag-5'>C</b>/<b class='flag-5'>C++</b>编译器

    技术干货驿站 ▏解锁C语言高效编程秘诀:深入解析运算与优先级

    C语言的学习过程中,运算的使用是不可忽视的重要环节。本文将继续深入探讨C语言中的运算,重点介绍位运算
    的头像 发表于 10-13 08:09 194次阅读
    技术干货驿站 ▏解锁<b class='flag-5'>C</b>语言高效编程秘诀:深入解析运算<b class='flag-5'>符</b>与优先级

    c语言从右到左的运算有哪些

    用在变量之后时,它们会先返回变量的原始值,然后再进行递增或递减。 三元条件运算 ( ?: ):这个运算的求值顺序是从右到左。首先计算第三个表达式,然后根据第一个表达式的结果选择第个或第三个表达式。 赋值运算
    的头像 发表于 08-20 11:39 699次阅读

    C++语言基础知识

    电子发烧友网站提供《C++语言基础知识.pdf》资料免费下载
    发表于 07-19 10:58 7次下载

    C++中实现类似instanceof的方法

    C++有多态与继承,但是很多人开始学习C++,有时候会面临一个常见问题,就是如何向下转型,特别是不知道具体类型的时候,这个时候就希望C++ 可以向Java或者Python中有insta
    的头像 发表于 07-18 10:16 534次阅读
    <b class='flag-5'>C++</b>中实现类似instanceof的方法

    STM32CubeMX如何在*.c源文件中使用c++特性?

    用arm-xxx-gcc编译器进行编译,*.cpp文件会使用arm-xxx-g++编译器进行编译,STM32CubeMX生成文件都是*.c源文件,在不修改文件名后缀情况下,我现在是想在*.c源文件中使用c++特性(比如
    发表于 04-25 06:15

    c语言,c++,java,python区别

    操作系统、嵌入式系统等对性能要求较高的场景。C语言的语法相对简单,学习曲线较平缓,也是学习其他高级语言的入门语言。 C++
    的头像 发表于 02-05 14:11 2237次阅读

    vb语言和c++语言的区别

    Microsoft开发的一种面向对象的事件驱动编程语言。它的设计目标是简化编程过程,让初学者也能快速上手。与相比,C++语言是一种通用的、面向对象的编程语言,其设计目标是提供高性能的系统级编程。 语法: VB语言的语法较为简单,使用了很多可读性强的关键词,如“
    的头像 发表于 02-01 10:20 2058次阅读

    C++简史:C++是如何开始的

    的 MISRA C++:2023 博客系列的第部分。 在这篇博客中,我们将深入探讨 C++ 的历史、编程语言多年来的发展历程以及它的下一步发展方向。
    的头像 发表于 01-11 09:00 536次阅读
    <b class='flag-5'>C++</b>简史:<b class='flag-5'>C++</b>是如何开始的

    “+”操作符的使用技巧

    这篇写个平时易被忽略的小知识点,一元 + 操作符的使用技巧。
    的头像 发表于 12-28 13:27 508次阅读

    C语言和C++中那些不同的地方

    C语言虽说经常和C++在一起被大家提起,但可千万不要以为它们是一个东西。现在我们常用的C语言是C89标准,C++
    的头像 发表于 12-07 14:29 907次阅读
    <b class='flag-5'>C</b>语言和<b class='flag-5'>C++</b>中那些不同的地方

    mybatis的dao能重载

    MyBatis的DAO能否重载? 在MyBatis中,DAO是数据访问对象的缩写,用于执行与数据库交互的操作。MyBatis的DAO可以重载,即可以定义多个具有不同参数的相同方法名的方法,以满足
    的头像 发表于 12-03 11:51 1234次阅读

    开箱即用!教你如何正确使用华为云CodeArts IDE for C/C++

    /C++,本文将通过5个短视频为你介绍CodeArts IDE for C/C++的5大特性操作。 01 开发环境准备 开发环境准备省时省力,只需
    的头像 发表于 11-29 17:40 759次阅读
    开箱即用!教你如何正确使用华为云CodeArts IDE for <b class='flag-5'>C</b>/<b class='flag-5'>C++</b>!

    如何选择创建c语言和c++

    选择创建 C 语言和 C++ 都需要综合考虑多个因素。在决定使用哪种语言之前,我们需要对这两种语言的特点、优缺点、适用场景、学习成本等进行全面的了解和对比。下面是关于选择创建 C 语言
    的头像 发表于 11-27 15:58 569次阅读

    c++怎么开始编程

    C++是一种高级的、通用的编程语言,用于开发各种类型的应用程序。它是从C语言演变而来,也是一种静态类型语言,可以在不同的平台上进行开发。C++具有高度的灵活性和性能,并且广泛应用于游戏开发、桌面
    的头像 发表于 11-27 15:56 894次阅读