栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

坚持学习100天:

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

坚持学习100天:

前言

Hello,我是修齊。
学习C++的第一百零一二天,4月30号早上下班了就放假、呆宿舍躺了一天、顺便等了12个小时核酸结果。
在这里记录一些学习的东西和学习的心情,内容主要是一些自己学习整理的小笔记。

一、运算符重载

1.运算符重载实现的是编译时的多态,即静态多态性。
2.C++预定义的运算符只是对基本数据类型进行操作,而对于自定义的数据类型比如类,却没有类似的操作。为了实现对自定义类型的操作。
3.运算符重载是对已有的运算符赋予多重含义,使同一个运算符作用于不同类型的数据时,导致不同类型的行为。
4.运算符重载就是运用函数重载的方法,对C++提供的标准运算符重新定义,以完成某种特定的操作。
5.运算符重载是通过创建运算符函数实现的,运算符函数定义了重载的运算符将要进行的操作。

二、运算符函数定义

1.类型转换运算符包括int、char、long、float、int*、char等。
2.不能重载的运算符是:“.”、“
”、“∷”、“sizeof”和“?:”。

<返回类型说明符> operator <运算符符号>(<参数表>)
​​​​​​​​{
​​​​​​​​    <函数体>
​​​​​​​​}​​
二、代码
   class CAdd                                 //定义类CAdd
​​​​​​​​   { 
​​​​​​​​    public:
​​​​​​​​        int m_Operand;
​​​​​​​​         CAdd()                                 //定义构造函数
​​​​​​​​        {
​​​​​​​​            m_Operand=0;
​​​​​​​​        }
​​​​​​​​       CAdd(int value)                        //重载构造函数
​​​​​​​​       {
​​​​​​​​           m_Operand=value;
​​​​​​​​       }
​​​​​​​​  };
​​​​​​​​  CAdd operator +(CAdd  a, int b)             //重载“+”运算符,操作CAdd类
​​​​​​​​                                              //第一个参数类型是CAdd,返回类型是CAdd
​​​​​​​​  {
​​​​​​​​       CAdd sum;                              //创建对象
​​​​​​​​       sum.m_Operand=a. m_Operand +b;         //实现类中成员变量与指定整型变量相加功能
​​​​​​​​       return sum;
​​​​​​​​  }
​​​​​​​​  void main()
​​​​​​​​  {
​​​​​​​​       CAdd a(5),b;                           //创建对象
​​​​​​​​       b=a+8;                             //调用重载后的“+”运算符
​​​​​​​​       cout<<"the sum is: "< 
三、重载 

1.运算符的重载形式有两种:一种是重载为类的成员函数,一种是重载为类的友元函数。
2.将运算符重载为它将要操作的类的成员函数,称为成员运算符函数。

<返回类型> operator<运算符>(参数表);
​​​​​​​​在类外定义的一般形式为:
​​​​​​​​<返回类型> <类名∷> operator<运算符>(参数表)
​​​​​​​​{
​​​​​​​​    函数体
​​​​​​​​}​​

3.双目运算符重载为成员函数时,左操作数是访问该重载运算符的对象本身的数据,由this指针指出,由操作数通过成员运算符函数的参数指出。

class X
​​​​​​​​{
​​​​​​​​    //
​​​​​​​​    int operator+(X ob);
​​​​​​​​}​​ 

4.C++中显式和隐式两种调用方法。
5.单目运算符重载为成员函数时,操作数是访问该重载运算符的对象本身的数据,由this指针指出,所以,此时成员运算符函数没有参数。

class X
​​​​​​​​{
​​​​​​​​    //
​​​​​​​​    int operator++();
​​​​​​​​}​​
四、先画个大饼、慢慢看

1.将重载的运算符函数定义为类的友元函数,称为友元运算符函数。
2.友元运算符函数在类内声明的

friend<返回类型> operator<运算符>(参数表);​​

3.在类外定义的

返回类型> operator<运算符>(参数表)
​​​​​​​​{
​​​​​​​​    函数体
​​​​​​​​}​​

4.双目运算符重载为友元函数时,由于没有this指针,所以两个操作数都要通过友元运算符函数的参数指出。与运算符重载为类的成员函数类似,双目运算符重载为友元函数后,其调用也有显式和隐式两种方法。
5.与单目运算符重载为成员函数相同,单目运算符重载为友元函数时,由于没有this指针,所以操作数要通过友元运算符函数的参数指出。

五、放假开开心心

放假回家没电脑、所以起了一张另类的篇章。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/854041.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号