4月21日作业

news2024/7/4 5:14:40

 

#include <iostream>
#include <cstring>
using namespace std;
 
//定义类
class myString
{
private:
    char *str;
    int size;
    public:
//无参构造
myString():size(32)
{
    str =  new char[size];
    strcpy(str,"");
    cout << "无参构造" << endl;
}
 
//有参构造
myString(const char *s)
{
    size = strlen(s);
    str = new char[size + 1];
    strcpy(str, s);
 
    cout << "有参构造" << endl;
}
 
//拷贝构造
myString(const myString &other)
  {
      size = other.size;
      str = new char[size + 1];
      strcpy(str, other.str);
 
      cout << "拷贝构造" << endl;
  }
//析构函数
      ~myString()
      {
          delete []str;
          cout << "析构函数" << endl;
      }
//判空函数
      bool empty()
     {
         if(strlen(str) == 0)
             return true;
         else
             return false;
     }
//size函数
     int mysize()
     {
         return size;
     }
 
     //c_str函数
     const char *c_str()
     {
         return str;
     }
     //at函数
        char &at(int i)
        {
            if(i >= size || i < 0)
            {
                cout << "段错误" << endl;
            }
            return str[i];
        }
        //展示字符串
        void show()
        {
            cout<<str<<endl;
        }
        //拷贝赋值
        myString & operator=(const myString &R)
        {
            delete []str;
            str=new char[size];
            this->size=R.size;
            this->str=strcpy(this->str,R.str);
            return *this;
        }
        //中括号[]重载
        char operator[](int t)
        {
            return this->str[t];
        }
        //+重载 连接2个字符串
        const myString operator+(const myString &R)
        {
            myString temp;
            delete []temp.str;
            temp.str=new char[this->size+R.size+1];
            temp.str=strcat(this->str,R.str);
            temp.size=this->size+R.size;
            return temp;
        }
        //==重载 判定2个字符串是否相等
        bool operator==(const myString &R)const
        {
            bool a;
            if(0==strcmp(this->str,R.str))
                a=1;
            else
                a=0;
            return a;
        }
         //<重载
        bool operator<(const myString &R)const
        {
            bool a;
            if(0<strcmp(this->str,R.str))
                a=1;
            else
                a=0;
            return a;
        }
        //>重载
       bool operator>(const myString &R)const
       {
           bool a;
           if(0>strcmp(this->str,R.str))
               a=1;
           else
               a=0;
           return a;
       }
       friend ostream &operator<<(ostream &L,const myString &O);
       friend istream &operator>>(istream &L, myString &O);
};
//输出重载<<
ostream &operator<<(ostream &L,const myString &O)
{
 
    L<<O.str;
    return L;
}
//输入重载>>
istream &operator>>(istream &L, myString &O)
{
 
    L>>O.str;
    return L;
}
 
int main()
    {
        myString s1;//无参构造
 
        myString s2("hello");//有参构造
        myString s3(s2);//拷贝构造
        cout<<"s3=";
        s3.show();
        int a=s2.mysize();//计算长度
        cout<<"s2长度="<<a<<endl;
        myString s4("aaa");
        myString s5;
        s5=s4;//赋值
        cout<<"s5="<<s5<<endl;//打印s5字符串
        cout<<"s5[2]="<<s5[2]<<endl;
        myString s6;
        s6=s4+s5;//连接字符串
        cout<<"s6="<<s6<<endl;
        myString s7;
        cin>>s7;
        if(s7<s6)
            cout<<"s7<s6";
        else if(s7>s6)
            cout<<"s7>s6";
        else if(s7==s6)
            cout<<"s7=s6";
 
 
 
    }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/454719.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Windows Server 2012 R2 部署.net6网站

之前部署在Windows Server 2016上很正常没有什么问题 但是在2012 R2上部署失败&#xff08;503&#xff09;&#xff0c;网上搜查后&#xff0c;发现要按照下面的顺序配置服务器 安装Windows操作系统布丁 Download Windows Server 2012 R2 更新 (KB2919355) from Official M…

搭建Serv-U FTP服务器共享文件并外网远程访问「无公网IP」

文章目录 1. 前言2. 本地FTP搭建2.1 Serv-U下载和安装2.2 Serv-U共享网页测试2.3 Cpolar下载和安装 3. 本地FTP发布3.1 Cpolar云端设置3.2 Cpolar本地设置 4. 公网访问测试5. 结语 转载自内网穿透工具的文章&#xff1a;使用Serv-U搭建FTP服务器并公网访问【内网穿透】 1. 前言…

pycharml利用ddddocr和selenium识别验证码并登录

文章目录 1OCR2 ddddocr3使用案例4 常见问题代码详情获得XPATH方法 1OCR OCR (Optical Character Recognition&#xff0c;光学字符识别)&#xff0c;是指电子设备(例如扫描仪或 数码相机)检查纸上打印的字符&#xff0c;通过检测暗、亮的模式确定其形状&#xff0c;然后用字符…

Excel数据分列的详细用法

Excel数据分列的详细用法 数据分列常见功能有日期格式的转换&#xff0c;有规律的数据分列&#xff0c;固定宽度的数据分列&#xff0c;读书屋办公教程网这篇文章将详细讲解Excel快速填充及文本与数值的互换。 软件演示版本&#xff1a;Microsoft Excel2019 快速填充 如下图表…

Dialect及Operation详解

参考资料&#xff1a; [MLIR] Dialect及Operation详解 - 知乎 (zhihu.com) 2. Dialect 及Operation 2.1Dialect 2.1.1Dialect 是什么&#xff1f; 从源程序到目标程序&#xff0c;要经过一系列的抽象以及分析&#xff0c;通过 Lowering Pass 来实现从一个IR到另一个IR的转换。…

力扣刷题——双数之和

很多人去力扣刷题都是数组的第一题&#xff0c;也就是双数之和&#xff0c;相信这也是很多人劝退题目&#xff0c;甚至对自己学过的知识产生了怀疑&#xff0c;这真的是我学完C语言&#xff0c;Java&#xff0c;Python或C之后能做出来的题目吗&#xff1f;直接劝退了很多人&…

使用 Lombok 的 @Accessors(chain=true) 的注意事项

前言 大家在日常开发中想必都有使用过 Lombok 的 Accessors(chaintrue) 注解吧&#xff0c;这个确实有时候会让我们的get/set方法变的非常的便捷&#xff0c;但是从中又隐藏了一些注意细节&#xff0c;我们一起来看看。 注解介绍 Accessors(chaintrue) 在我们的实体类或者对…

curl检测网页的用法

一般网页状态为200都是正常的&#xff0c;还有一种情况是网页做了跳转&#xff0c;这种情况下网页状态码为301&#xff0c;http的head里会有lcation记录跳转的地址 这个方法不太好用&#xff0c;取出来的值后面会带回车键值可以将值输出到文本里就会看到末尾有带回车键值&…

solidworks2022 - 双开

文章目录 solidworks2022 - 双开概述实验END solidworks2022 - 双开 概述 如果要参照一份设计文件, 画自己的设计. solidworks双开就有点刚需的意思了. 如果只是双击打开参考设计和自己的现有工程, 只能在一个solidworks中同时打开2份工程. 虽然可以跨区显示, 但是一份设计进…

Git很少用到但是很有用的几个命令

Git的有些命令已经融入到血液中&#xff0c;通常情况下大脑可能还没有想出来&#xff0c;键盘却已经敲出来了。 但是同样有一些Git命令&#xff0c;平时用不上&#xff0c;但真正遇到了使用场景时&#xff0c;却怎么也想不起来&#xff0c;不得不面向CSDN编程。 比如有时候git …

推荐 | 基于飞凌嵌入式i.MX8MM核心板的压力位移分析仪应用方案

来源&#xff1a;飞凌嵌入式官网 www.forlinx.com 随着工业制造领域的高速发展&#xff0c;工业生产中对于材料力学性能的要求也随之上升&#xff0c;因此就需要有更加精确和可靠的测量仪器来满足需求。于是压力位移分析仪应运而生&#xff0c;大大提高了材料测试的准确性…

【荐书】分享5种程序员需要的战略思维

⭐️ 大家好&#xff0c;我是爱读书的小雨青年。我很高兴参加了周掌柜《战略思维十二讲》的线下新书发布会。 ⭐️ 新书发布会分为两个部分&#xff0c;上半场是周掌柜本人的自我介绍&#xff0c;以及对本书的一些讲解。在我看来讲解程度十分细致了&#xff0c;周掌柜本人给人一…

[世界读书日] 最好的书,都在博雅之中

今天是世界读书日&#xff08;4月23日&#xff09;&#xff0c;还是谈谈读书。 我很少看到有人说读书不好的&#xff0c;但很少看到有人爱读书&#xff0c;也很少看到有人读到了好书。 好书、好读书、读好书&#xff0c;都是很稀缺的。 一、好书的作用 基本上&#xff0c;我们遇…

项目管理中,如何拒绝客户的要求?

在生活中&#xff0c;我们要面对各种各样的人和事&#xff0c;要学如何去拒绝别人提出的要求。 这些要求&#xff0c;有符合我们意愿的&#xff0c;也有不符合我们意愿的&#xff1b;有我们能接受的&#xff0c;也有我们需要拒绝的。 这是我们日常生活的一部分&#xff0c;并…

IJKPLAYER源码分析-主要队列

前言 对IJKPLAYER播放器内核几个关键的队列的理解&#xff0c;将有助于掌控全局。因此&#xff0c;这里简要介绍所涉及到的几个关键队列实现&#xff1a; PacketQueue&#xff1a;压缩数据队列&#xff0c;是一个带有首尾指针和回收单链表头指针的单链表结构&#xff0c;用来实…

iptables和firewalld防火墙

安全技术和防火墙概述 安全技术 入侵检测系统&#xff08;Intrusion Detection Systems&#xff09;&#xff1a;特点是不阻断任何网络访问&#xff0c;量化、定位来自内外网络的威胁情况&#xff0c;主要以提供报警和事后监督为主&#xff0c;提供有针对性的指导措施和安全决…

SLAM论文速递【SLAM—— 基于平面特征的动态SLAM—4.24(2)

论文信息 题目&#xff1a; Dynamic SLAM Based on Planar Features 基于平面特征的动态SLAM论文地址&#xff1a; https://ieeexplore.ieee.org/abstract/document/9834113发表期刊&#xff1a; 2022 7th International Conference on Automation, Control and Robotics En…

从源码全面解析 ArrayBlockingQueue 的来龙去脉

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱敲代码的小黄&#xff0c;独角兽企业的Java开发工程师&#xff0c;CSDN博客专家&#xff0c;阿里云专家博主&#x1f4d5;系列专栏&#xff1a;Java设计模式、数据结构和算法、Kafka从入门到成神、Kafka从成神到升仙…

前缀索引,在性能和空间中寻找平衡

文章目录 1.什么是前缀索引2.什么是索引选择性3.创建前缀索引3.1 一个小案例3.2 前缀索引3.3 一个问题 4. 回到开始的问题5.小结 我们在项目的具体实践中&#xff0c;有时候会遇到一些比较特殊的字段&#xff0c;例如身份证号码。 松哥之前有一个小伙伴做黑龙江省的政务服务网&…

手持式激光焊接机多少钱一台

目前很火的一台机器&#xff0c;相比于传统的焊接&#xff0c;手持激光焊接机最大的亮点在于&#xff1a; 1、对于操作工人没有要求&#xff1a;不需要焊工证、男女老少均可 这样可以大大节省人工成本 2、焊接质量 由于他的焊接效率、操作性能比较突出&#xff0c;即便是第一…