9月11日作业

news2024/12/23 15:03:00

思维导图

代码

#include <iostream>
#include<string.h>

using namespace std;

class myString
{
private:
    char *str;          //记录c风格的字符串
    int size;            //记录字符串的实际长度
public:
    //无参构造
    myString():size(10)
    {
        str = new char[size];         //构造出一个长度为10的字符串
        strcpy(str,"");         //赋值为空串
    }
    //有参构造
    myString(const char *s)          //string  s("hello world")
    {
        size = strlen(s);
        str = new char[size+1];
        strcpy(str, s);
    }
    //拷贝构造
    myString(const myString &other):str(other.str), size(other.size)
    {
        str = new char[size+1];
        strcpy(str, other.str);
        size = other.size;
        cout<<"拷贝构造"<<endl;
    }
    //析构函数
    ~myString()
    {
        delete str;
        cout<<"~"<<endl;
    }
    //拷贝赋值函数
    myString& operator=(const myString& other)
    {
        if(this != &other)          //确定不是自己给自己赋值
        {
            this->size = other.size;
            //判断原来指针空间释放被清空
            if(this->str != NULL)
            {
                delete this->str;
            }
            this->str = new char(*other.str);
        }
        cout<<"Stu:: 拷贝赋值函数"<<endl;
        return  *this;             //返回自身引用
    }
    //判空函数
    bool isEmpty()
    {
        return size==0;
    }
    //size函数
    int Size()
    {
        return strlen(str);
    }
    //c_str函数
    char* c_str()
    {
        return str;
    }
    //at函数
    char &at(int pos)
    {
        if(pos > size-1)
        {
            cout<<"下标超出范围";
        }else{
            return str[pos];
        }
    }
    //加号运算符重载
    const myString operator+(const myString& other)const
    {
        myString temp;
        temp.size = this->size + other.size;
        strcpy(temp.str, this->str);
        strcat(temp.str, other.str);
        return temp;
    }
    //加等于运算符重载
    myString& operator+=(const myString& other)
    {
        strcat(this->str, other.str);
        this->size += other.size;
        return *this;
    }
    //关系运算符重载(>)
    bool operator>(const myString& other)const
    {
        int j = strlen(str);
        for(int i=0; i<j; i++)
        {
            if(str[i]>other.str[i])
            {
                return true;
            }else
            {
                return false;
            }
        }
    }
    //中括号运算符重载
    char & operator[] (int pos)
    {
        if(pos > size-1)
        {
            cout<<"下标超出范围";
        }else{
            return str[pos];
        }
    }
};
int main()
{
    myString s1("hello");
    myString s2(" world");
    cout<<s1.c_str()<<endl;
    cout<<s1.at(4)<<endl;
    cout<<s1.Size()<<endl;
    myString s3 = s1;
    cout<<s3.c_str()<<endl;
    s3+=s2;
    cout<<s3.c_str()<<endl;
    cout<<s3[10]<<endl;
    myString s4;
    s4 = s3;
    if(s1>s2)
    {
        cout<<"yes"<<endl;
    }else
    {
        cout<<"no"<<endl;
    }
    return 0;
}

运行截图

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

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

相关文章

JAVAWEB,tomcat,MVC

注意,这里有三大语言来实现动态网页技术 如果用户访问的是静态内容,比如固定html页面,web服务器就够了 其中,中间件帮忙处理很多东西,复杂的东西他来帮忙完成 正常来说,搭建web服务需要web服务器,web容器两个东西,但是tomcat相当于集成了这两个,不过有些项目里不会把tomcat当做…

借助ChatGPT使用Pandas实现Excel数据汇总

一、问题的提出 现在有如下一个Excel表&#xff1a; 上述Excel表中8万多条数据&#xff0c;记录的都是三年以来花菜类的销量&#xff0c;现在要求按月汇总实现统计每个月花菜类的销量总和&#xff0c;如果使用Python的话要给出代码。 二、问题的解决 1.首先可以用透视表的方…

BGA封装检测

1.BGA封装检测 1.1 应用示例目的与思路 (1) 从输入图像中裁剪出包含BGA区域的图像&#xff1b; (2) 对BGA区域进行特征筛选&#xff0c;筛选出尺寸和形状均不正常的球形焊点&#xff1b; (3) 对尺寸和形状不正常的球形焊点分别用圆和交叉线标记出来。 1.2 应用示例相关算子…

【算法挨揍日记】day04——15. 三数之和、18. 四数之和

15. 三数之和 15. 三数之和https://leetcode.cn/problems/3sum/ 题目描述&#xff1a; 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所…

零基础报考湖北省叉车N1特种设备作业Z难不难?

零基础报考湖北省叉车N1特种设备作业Z难不难&#xff1f; 零基础报考叉车指的是没有从事叉车行业&#xff0c;没有实际操作经验的这类人员报考湖北特种设备作业人员N1(叉车)难度。叙后尘告诉你其实蛮简单。跟你梳理一下报考相关事项。 湖北叉车报考-在哪里报名 正常来说自己报…

日常练习-4

目录 一、选择题 二、算法题 1、统计回文 2、连续最大和 一、选择题 1、 解析&#xff1a; p1是一个字符数组&#xff0c;存储了"abcd"&#xff0c;p2是一个字符指针&#xff0c;指向了"ABCD"&#xff0c;str是一个字符数组&#xff0c;存储了"xyz&…

手写一个摸鱼神器:使用python手写一个看小说的脚本,在ide中输出小说内容,同事直呼“还得是你”

文章目录 一、准备python环境二、分析小说网的章节目录三、分析小说网的章节内容四、编写python脚本五、验证一下吧 一、准备python环境 windows从0搭建python3开发环境与开发工具 Python爬虫基础&#xff08;一&#xff09;&#xff1a;urllib库的使用详解 Python爬虫基础&a…

PyTorch深度学习实践1——线性回归和Logistic回归

PyTorch的风格 准备数据集使用类设计模型计算损失函数和优化器训练【前向、反向和更新】 线性回归 import torch# 准备数据集 # x,y是矩阵&#xff0c;3行1列 也就是说总共有3个数据&#xff0c;每个数据只有1个特征 x_data torch.tensor([[1.0], [2.0], [3.0]]) y_data to…

关于Java的类加载机制

1、概述 类会在运行期间第一次使用时&#xff0c;被类加载器动态加载至JVM。JVM不会一次性加载所有类。因为如果一次性加载&#xff0c;会占用很多的内存。 2、类的生命周期 类的生命周期包括以下 7 个阶段&#xff1a; 加载&#xff08;Loading&#xff09;验证&#xff08;…

关于软件的功能复用

有一些人总在说软件要复用&#xff0c;开发一个项目时要想想怎么在另一个项目中能重用。你问他怎么做到复用&#xff0c;就会听到微服务、中台一些名词 复用的层次 说到复用&#xff0c;首先要想明白复用的是啥 级别越低&#xff0c;粒度越小&#xff0c;复用的范围越广&#…

实现div的height从0到auto的过渡效果

通过修改max-height打到高度自适应的过程。 展开状态 收起状态 一般场景描述需求&#xff08;与项目业务无关&#xff09;&#xff1a; 需要完成一种过渡效果,即height是变化的&#xff0c;但不是数字到数字的变化&#xff0c;因为不知道展开之后的高度到底是多少?不确定!!!。…

Qt加载本地图片转为YUV420P格式数据

一、背景介绍 在流媒体应用中&#xff0c;视频编码是必不可少的一环。视频编码的作用是将高带宽、高码率的原始视频流压缩成低带宽、低码率的码流&#xff0c;以便于传输和存储。H264是一种高效的视频编码标准&#xff0c;具有良好的压缩性能和广泛的应用范围&#xff0c;在实…

《C++ primer》练习3.20:输出vector相邻元素的和输出vector头尾对象的和

最近看《C primer》&#xff0c;有这样一个题目 输出vector相邻元素的和 读入一组整数并把它们存入一个vector对象&#xff0c;将每对相邻整数的和输出出来。 这里要注意输入的奇数个和偶数个的数的区别。偶数个整数的话刚好数全部用完&#xff0c;奇数个整数最后一个数空出来…

淘宝平台开放接口API接口

淘宝平台开放接口API接口是指淘宝平台提供给第三方开发者的一组接口&#xff0c;用于实现与淘宝平台的数据交互和功能扩展。通过API接口&#xff0c;第三方开发者可以获取淘宝平台上的商品信息、订单信息、用户信息等数据&#xff0c;也可以实现商品的发布、订单的创建和支付等…

【图解RabbitMQ-7】图解RabbitMQ五种队列模型(简单模型、工作模型、发布订阅模型、路由模型、主题模型)及代码实现

&#x1f9d1;‍&#x1f4bb;作者名称&#xff1a;DaenCode &#x1f3a4;作者简介&#xff1a;CSDN实力新星&#xff0c;后端开发两年经验&#xff0c;曾担任甲方技术代表&#xff0c;业余独自创办智源恩创网络科技工作室。会点点Java相关技术栈、帆软报表、低代码平台快速开…

2023年世界机器人大会回顾

1、前记&#xff1a; 本次记录是我自己去世界机器人博览会参观的一些感受&#xff0c;所有回顾为个人感兴趣部分的机器人产品分享。整个参观下来最大的感受就是科学技术、特别是机器人技术和人工智能毫无疑问地、广泛的应用在我们日常生活的方方面面&#xff0c;在安全巡检、特…

【洛谷算法题】P5704-字母转换【入门1顺序结构】

&#x1f468;‍&#x1f4bb;博客主页&#xff1a;花无缺 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P5704-字母转换【入门1顺序结构】&#x1f30f;题目描述&#x1f30f;输入格式&a…

ClickHouse进阶(十三):Clickhouse数据字典-3-文件数据源及Mysql数据源

进入正文前&#xff0c;感谢宝子们订阅专题、点赞、评论、收藏&#xff01;关注IT贫道&#xff0c;获取高质量博客内容&#xff01; &#x1f3e1;个人主页&#xff1a;含各种IT体系技术,IT贫道_大数据OLAP体系技术栈,Apache Doris,Kerberos安全认证-CSDN博客 &#x1f4cc;订阅…

metinfo __ 6.0.0 __ file-read

metinfo __ 6.0.0 __ file-read 说明内容漏洞编号–漏洞名称MetInfo 6.0.0 任意文件读取漏洞漏洞评级高危影响范围6.0.0.0漏洞描述MetInfo 存在任意文件读取漏洞&#xff0c;攻击者利用该漏洞&#xff0c;在具有权限的情况下&#xff0c;可以读取网站任意文件&#xff0c;包括…

ASP.NET+sqlserver公司项目管理系统

一、源码描述 这是一款简洁十分美观的ASP.NETsqlserver源码&#xff0c;界面十分美观&#xff0c;功能也比较全面&#xff0c;比较适合 作为毕业设计、课程设计、使用&#xff0c;感兴趣的朋友可以下载看看哦 二、功能介绍 该源码功能十分的全面&#xff0c;具体介绍如下&…