当前位置: 首页 > article >正文

day06 1.继承和多态

 

#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.kler.cn/news/289402.html

相关文章:

  • 【JavaEE初阶】计算机是如何运行的?
  • 缓存分布式一致性问题
  • OpenCV下的视频和帧图片转换(Video2FrameFrame2Video, VideoCaptureVideoWriter)
  • 游戏翻译中西班牙语的特点
  • Kafka【四】Controller的选举机制
  • Storm计算框架
  • 结构体的使用
  • C#串口助手初级入门
  • Oracle 19C管理控制文件
  • 达梦SQL 优化简介
  • 巨魔商店2.1正式更新,最高支持iOS17.6.1
  • c++(list)
  • flink窗口分组数据错乱
  • Spring源码之refresh
  • 常用性能参数检查方法图示
  • Unity ScriptableObject持久化操作
  • 装饰器模式及应用【理论+代码】
  • 弱通联条件下的人机混合控制
  • 蓝桥杯备赛day02:递推
  • 【Linux操作系统】:Linux生产者消费者模型
  • 数据分析-MAC 编程环境安装教程
  • 淘客APP的前后端分离架构设计
  • 学习记录——day42 多态
  • 算法图解(2)
  • 【Day08】
  • weak_ptr是否有计数方式,在哪分配的空间。
  • MacBook Pro M3 安装 Node.js v14 的兼容性
  • 进阶SpringBoot之 Shiro(6)整合 Thymeleaf
  • 【word导出带图片】使用docxtemplater导出word,通知书形式的word
  • 0基础学习爬虫系列:Python环境搭建