day06 1.继承和多态

news2024/9/21 4:26:16

 

#include "work.h"

Stack:: Stack():size(10)
{
    data = new char[size];
    top = -1;
    cout <<"无参构造"<<endl;
}

Stack:: Stack(const char* s)
{
    size = strlen(s);
    data = new char[size];
    strcpy(data,s);
    top = size-1;
    cout <<"有参构造"<<endl;
}

Stack:: ~Stack()
{
    delete[] data;
    cout <<"析构函数" <<endl;
}

Stack &Stack::operator=(const Stack &other)
{
    if(this != &other)
    {
        delete[] data;
        size = other.size;
        top = size-1;
        data = new char(size+1);
        strcpy(data,other.data);
    }
    return *this;
};

const char &Stack::top_t()const
{
    return data[size-1];
}

bool Stack::empty()
{
    return top == -1;
}

int Stack::size_t()
{
    return top+1;
}

void Stack::push_t(char a)
{

    data[size] = a;
    size = size + 1;
    top++;
    data[size] = '\0';
    return ;
}

void Stack::pop_t()
{
    size--;
    top--;
    data[size] = '\0';
}


Queue:: Queue()
{
    data = new char[MAX];
    front = 0;
    tail = 0;
    cout <<"无参构造"<<endl;
}

Queue:: Queue(const char* s)
{
    size = strlen(s);
    data = new char[MAX];
    tail = size;
    front = 0;
    strcpy(data,s);

    cout <<"有参构造"<<endl;
}

Queue:: ~Queue()
{
    delete[] data;
    cout <<"析构函数" <<endl;
}

Queue &Queue::operator=(const Queue &other)
{
    if(this != &other)
    {
        delete[] data;
        size = other.size;
        data = new char(size+1);
        front = 0;
        tail = size;
        strcpy(data,other.data);
    }
    return *this;
};

const char &Queue::front_at()const   //访问队列第一个元素
{
    return data[front];
}

const char &Queue::back_at()const   //访问队列最后一个元素
{
    return data[tail-1];
}

bool Queue::empty()
{
    return front == tail;
}

int Queue::size_t()
{
    return (tail-front)%MAX;
}

void Queue::push_t(char a)
{
    //入队逻辑
    data[tail] = a;

    //队列变化:队尾后移
    tail = (tail+1)%MAX;

    size++;
}

void Queue::pop_t()
{
    front = (front+1)%MAX;
    size--;
}

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

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

相关文章

Android之Handler的post方法和sendMessage的区别

目录 post 方法方法特点 sendMessage 方法方法特点 使用场景区别总结 Handler 类在 Android 中用于在不同线程之间传递消息和执行代码。它提供了两种主要的方式来执行任务&#xff1a;通过 post 方法和通过 sendMessage 方法。这两种方法有不同的使用场景和特点。 post 方法 方…

【系统架构设计】嵌入式系统设计(2)

【系统架构设计】嵌入式系统设计&#xff08;2&#xff09; 嵌入式网络系统嵌入式 Internet 的接入方式嵌入式 TCP/IP 协议栈 嵌入式数据库管理系统数据的一致性高效的事务处理数据的安全性 实时系统与嵌入式操作系统对实时系统划分根据实时性的强弱根据对错失时限的容忍程度或…

Android Google Maps

Android 谷歌地图 前言正文一、设置Google Cloud 项目二、项目配置① 设置SDK② 配置API密钥③ 配置AndroidManifest.xml 三、添加地图四、定位当前① 请求定位权限② 我的位置控件③ 获取当前位置 五、配置地图① xml配置地图② 代码配置地图③ 地图点击事件④ 管理Marker 六、…

达梦SQL 优化简介

目录 一、定位慢 SQL &#xff08;一&#xff09;开启跟踪日志记录 1.跟踪日志记录配置 &#xff08;二&#xff09;通过系统视图查看 1.SQL 记录配置 2.查询方式 二、SQL分析方法 &#xff08;一&#xff09;执行计划 1.概述 2.查看执行计划 &#xff08;二&#x…

使用LLaMA-Factory快速训练自己的专用大模型

本文聊聊 LLama-Factory&#xff0c;它是一个开源框架&#xff0c;这里头可以找到一系列预制的组件和模板&#xff0c;让你不用从零开始&#xff0c;就能训练出自己的语言模型&#xff08;微调&#xff09;。不管是聊天机器人&#xff0c;还是文章生成器&#xff0c;甚至是问答…

物联网能源管理平台

能源管理平台可以对接各种物联网设备&#xff0c;感兴趣的朋友可根据下方方式联系获取演示账号 1.介绍 2.智慧照明接入 设备远程控制&#xff0c;灯光亮度感应等模式设置&#xff0c;用电耗能分析 3.温控器接入 温控器&#xff08;空调面板&#xff09;接入&#xff0c;实现…

GB/T28181规范和JT1078交通部标差异

技术背景 好多开发者区分不太清楚GB/T28181和JT1078规范&#xff0c;实际上&#xff0c;二者在规范定义、技术特点、过检认证以及应用场景等方面均存在显著差异。两者各有其适用领域和优势&#xff0c;但在某些特定场景下也可能需要相互协作以实现更全面的监控和管理。 规范定…

C#复习之封装_静态成员

知识点一 静态成员的基本概念 知识点二 早已出现的静态成员 知识点四 静态成员的使用 知识点五 为什么可以直接点出来 //记住&#xff01; //程序中是不能无中生有的 //我们要使用的对象&#xff0c;变量&#xff0c;函数都是要在内存中分配内存空间的 //之所以要实例化对象…

TWS蓝牙耳机发展历史以及涉及的相关技术知识

TWS(True Wireless Stereo)蓝牙耳机是近年来迅速发展的消费电子产品之一。它们的诞生和发展经历了多个阶段,并涉及到多项关键技术。以下是 TWS 蓝牙耳机的发展历史及相关技术知识的详细解析。 1. TWS 蓝牙耳机的发展历史 1.1 初期阶段(2014年之前) 在 TWS 蓝牙耳机出现之…

老师怎样用微信发布月考成绩?

每当月考结束&#xff0c;老师们就开始了一项繁琐的任务——将成绩单一一私信给每位学生的家长。这不仅耗时耗力&#xff0c;还容易出错。家长们焦急等待&#xff0c;老师们则在电脑前忙碌着&#xff0c;一张张成绩单&#xff0c;一条条信息&#xff0c;重复的工作让人疲惫不堪…

Unity(2022.3.41LTS) - UI详细介绍-Scrollbar(滚动条)

目录 零.简介 一、基本功能与用途 二、组件介绍 三、使用方法 四、优化和注意事项 五.和滑动条的区别 零.简介 在 Unity 中&#xff0c;滚动条&#xff08;Scrollbar&#xff09;是一种用于实现滚动功能的 UI 组件。 一、基本功能与用途 滚动内容&#xff1a;主要用于…

【重学 MySQL】五、MySQL 的卸载

【重学 MySQL】五、MySQL 的卸载 停止MySQL服务卸载MySQL程序删除残余文件清理注册表删除环境变量配置重启电脑 MySQL的卸载过程需要仔细操作&#xff0c;以确保彻底卸载并清理所有相关文件和配置。 停止MySQL服务 打开任务管理器&#xff1a;右键点击任务栏空白处&#xff0…

模组级存储与嵌入式存储的千差万别

雷龙在多年销售CS创世 SD NAND&#xff08;也称&#xff1a;迷你型eMMC&#xff0c;小尺寸/小容量eMMC&#xff0c;贴片式T卡&#xff0c;贴片式TF卡&#xff0c;贴片式SD卡等&#xff09;的过程中&#xff0c;经常有被用户问到&#xff1a;SD NAND 与 TF卡 到底有哪些区别呢&a…

动态路由和路由导航守卫及其案例分析

为什么需要动态路由&#xff1f; 动态路由其实用的不多&#xff0c;在实际开发中&#xff0c;如果遇到权限分配问题&#xff0c;比如对于一个公司人员的后台管理系统&#xff0c;那对不同成员的权限肯定不同&#xff0c;对于人事部&#xff0c;他们有权限进入成员表对人员的流…

【网络安全】XSS漏洞挖掘Tip

未经许可&#xff0c;不得转载。 某网页存在错误信息&#xff0c;包含在div标签内&#xff1a; 检查此页面的源代码以获取id属性&#xff1a; 将id属性作为 GET 参数进行测试&#xff0c;例如在 URL 中添加error_messagehelloworld&#xff1a; 可以看到&#xff0c;参数被接受…

流媒体技术革新,EasyCVR视频汇聚平台赋能视频监控全面升级

随着科技的飞速发展&#xff0c;流媒体技术和视频监控正经历着前所未有的变革与融合。本文将从流媒体技术的新兴趋势出发&#xff0c;探讨其与视频监控领域的深度结合&#xff0c;以及这一融合所带来的创新与发展。 一、流媒体技术的新兴趋势 1、5G网络的广泛应用 5G网络以其…

AI驱动测试管理工具会有哪些发展前景呢?

在软件测试领域&#xff0c;人工智能&#xff08;AI&#xff09;的出现犹如一场技术革命&#xff0c;改变了传统的测试管理方式。随着AI技术的迅速发展&#xff0c;它将如何进一步提升测试管理的效率与准确性&#xff1f;未来的AI驱动测试管理工具又会带来哪些令人期待的创新呢…

unittest | 使用unittest模块来测试logging日志模块功能

我们在这篇文章实现了在项目工程中编写一个logging模块&#xff0c;但是我们如何确定我们编写的模块功能的是否正常? 你可能想到将全部代码写完后运行测试&#xff0c;但这是一个非常不好的习惯。❌ 最好的方式&#xff0c;是每写出来一个功能或者方法就对它进行测试&#x…

MySQL 存储引擎有哪些?InnoDB 和 MyISAM 存储引擎有什么区别?

MySQL 存储引擎有哪些&#xff1f; MySQL 存储引擎主要负责查询的执行和数据的存储&#xff0c;存储引擎主要有 InnoDB&#xff0c;MyISAM&#xff0c;Memery InnoDB 是 MySQL 默认的存储引擎&#xff0c;支持事务和行级锁&#xff0c;以及外键的约束&#xff0c;具有事务提交…

揭秘推荐算法:深度学习如何读懂你的购物心思

时间&#xff1a;2024年09月03日 作者&#xff1a;小蒋聊技术 邮箱&#xff1a;wei_wei10163.com 微信&#xff1a;wei_wei10 音频&#xff1a;https://xima.tv/1_L8HH40?_sonic0 希望大家帮个忙&#xff01;如果大家有工作机会&#xff0c;希望帮小蒋内推一下&#xff0c…