【BigHereo 34】---L7---运算符重载,流类库

2024-08-27 21:48

本文主要是介绍【BigHereo 34】---L7---运算符重载,流类库,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!



 

L7---运算符重载,流类库

 

 

一,【前言】


   1,什么是运算符重载?


   2,运算符重载要用什么来表示呢?


   3, 如果要能访问另一个类私有成员的方法?


   4, 运算符重载的特性?


   5,不能重载的运算符有哪些?


 

思维导图如下:





二,【问题详解】


   1,什么是运算符重载?

   


   2,运算符重载要用什么来表示呢?

解答: operator

 


   3, 如果要能访问另一个类私有成员的方法有哪些?

解答:

  


   4, 运算符重载的特性?

解答:

     


   5,不能重载的运算符有哪些?

      


   6,istream和ostream的基类是什么?

解答: 基类是ios

          



   7,流的分类分为 四种, 是哪四种?

解答: cin ,cout, clog, cerr.

         


   8,Myfile文件和myTest.txt文件进行关联,代码怎么写?

解答:

          


   9,关于运算符重载, 完整的实现str类的例子:

#includel<iostream>
#include<string>Usingnamespace std;
Class str{Private:Chat *st;Public:Str(char *s);  //使用字符指针的构造函数Str(str &s);   //使用对象引用的构造函数Str & operator=(str & a);   //重载使用”对象引用”的赋值运算符Str& operator=(char *s);  //重载使用”指针”的赋值运算符Void print(){cout<<st<<endl;} //输出字符~str() {delete st;}};
Str :: str(char *s){St=new char[strlen(s)+1];   //为st申请内存Strcpy(str, s);              //将字符串s复制到内存区st}
Str:: str(str &a){Str=newchar[strlen(a.st)+1];  //为st申请内存strcpy(st, a.st);            //将对象a的字符复制到内存区st}str& str::operator=(str& a){If(this==&a)  //防止 a=a 这样的赋值return * this; //a=a,退出delete st;  //不是自身,先释放内存空间st=new char[strlen(a.st) +1];  //重新申请内存strcpy(st,a.st);   //将对象a的字符串复制到申请的内存区return *this;  //返回this指针的对象}str & str::operator=(char *s){delete st;   //是字符串直接复制,先释放内存空间st=new char[strlen(s)+1];  //重新生成内存strcpy(st, s);   //将字符串s复制到内存区st.return * this;}
}
下面是测试程序:
Void main(){Str s1(“We”),s2(“They”), s3(s1);      //调用构造函数和复制构造函数S1.print();s2.print(); s3.print();      S2=s1=s3;                     //调用赋值操作符S3=”Gohome”!                //调用字符串复制操作符S3=s3;                      //调用赋值操作符但不进行赋值操作.S1.print();s2.print(); s3.print();
}


 


三,【小结】     

                                     

     到这里,C++的基本语法,基本的理论知识体系就完了,语言基本都是相通的.从结构到类,对象,函数与函数模板再到面向对象继承和派生, 还学习的多态性的虚函数,运算符重载以及流类库,向量等等.

 

   希望我的总结能对能有所帮助, 还希望您能提出宝贵以及, 以便我能改进.

 

 

 

 


这篇关于【BigHereo 34】---L7---运算符重载,流类库的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1112868

相关文章

BUUCTF(34)特殊的 BASE64

使用pycharm时,如果想把代码撤销到之前的状态可以用 Ctrl+z 如果不小心撤销多了,可以用 Ctrl+Shift+Z 还原, 别傻傻的重新敲了 BUUCTF在线评测 (buuoj.cn) 查看字符串,想到base64的变表 这里用的c++的标准程序库中的string,头文件是#include<string> 这是base64的加密函数 std::string

C++操作符重载实例(独立函数)

C++操作符重载实例,我们把坐标值CVector的加法进行重载,计算c3=c1+c2时,也就是计算x3=x1+x2,y3=y1+y2,今天我们以独立函数的方式重载操作符+(加号),以下是C++代码: c1802.cpp源代码: D:\YcjWork\CppTour>vim c1802.cpp #include <iostream>using namespace std;/*** 以独立函数

【重学 MySQL】十九、位运算符的使用

【重学 MySQL】十九、位运算符的使用 示例检查权限添加权限移除权限 在 MySQL 中,位运算符允许你直接在整数类型的列或表达式上进行位级操作。这些操作对于处理那些需要在二进制表示上进行直接修改或比较的场景特别有用,比如权限管理、状态标记等。 &(位与) 对两个数的二进制表示进行位与操作。只有两个相应的二进制位都为 1 时,结果的该位才为 1,否则为 0。 |(位

Java基础回顾系列-第五天-高级编程之API类库

Java基础回顾系列-第五天-高级编程之API类库 Java基础类库StringBufferStringBuilderStringCharSequence接口AutoCloseable接口RuntimeSystemCleaner对象克隆 数字操作类Math数学计算类Random随机数生成类BigInteger/BigDecimal大数字操作类 日期操作类DateSimpleDateForma

C语言程序设计(数据类型、运算符与表达式)

一、C的数据类型 C语言提供的数据类型: 二、常量和变量 2.1常量和符号常量 在程序运行过程中,其值不能被改变的量称为常量。 常量区分为不同的类型: 程序中用#define(预处理器指令)命令行定义变量将代表常量,用一个标识符代表一个常量,称为符合常量。 2.2变量 变量代表内存中具有特定属性的一个存储单元,用来存放数据,在程序运行期间,这些值是可以 改变的。 变

第二十四章 rust中的运算符重载

注意 本系列文章已升级、转移至我的自建站点中,本章原文为:rust中的运算符重载 目录 注意一、前言二、基本使用三、常用运算符四、通用约束 一、前言 C/C++中有运算符重载这一概念,它的目的是让即使含不相干的内容也能通过我们自定义的方法进行运算符操作运算。 比如字符串本身是不能相加的,但由于C++中的String重载了运算符+,所以我们就可以将两个字符串进行相加、但实际

C++可以被重载的操作符Overloadable operators

C++允许绝大多数操作符被重载,也就是重新定义操作符实现的功能,这样它们的行为可以被设计出来以适应所有的数据类型,包括类。 以下是C++可以被重载的操作符(Overloadable operators): //四则运算符+ - * / %+= -= *= /= %=//比较运算符> >= == != //赋值运算符= //位操作

c++/《重载操作符》

为什么要对运算符进行重载:         C++预定义中的运算符的操作对象只局限于基本的内置数据类型,但是对于我们自定义的类型(类)是没有办法操作的。但是大多时候我们需要对我们定义的类型进行类似的运算,这个时候就需要我们对这么运算符进行重新定义,赋予其新的功能,以满足自身的需求。 <返回类型说明符> operator <运算符符号>(<参数表>) { <函数体> }

《C++中的移动构造函数与移动赋值运算符:解锁高效编程的最佳实践》

在 C++的编程世界中,移动构造函数和移动赋值运算符是提升程序性能和效率的重要工具。理解并正确运用它们,可以让我们的代码更加高效、简洁和优雅。 一、引言 随着现代软件系统的日益复杂和对性能要求的不断提高,C++程序员需要不断探索新的技术和方法来优化代码。移动构造函数和移动赋值运算符的出现,为解决资源管理和性能优化问题提供了有力的手段。它们允许我们在不进行不必要的复制操作的情况下,高效地转移资源

『功能项目』武器的切换实例【34】

本章项目成果展示 我们打开上一篇33战士的A键连击的项目, 本章要做的事情是按键盘E键切换职业时切换手中的武器 首先在资源商店下载免费的武器模型 创建一个空物体 命名为WeaponPos 将武器预制体拖拽至WeaponPos (注意调整空物体位置就可以后续文章会更换武器) 隐藏两把武器 运行项目 隐藏装备 在资源商店