C++动态数组类设计

本文介绍了使用C++设计的动态数组类,虽然功能相对简单,没有包含从头插入、根据下标插入和删除等操作,但通过运算符重载,使得通过下标访问元素变得更加方便。提供了相关源代码文件(dynints_oop.h, dynints_oop.cpp, main.cpp)及运行结果。" 112127389,10551652,移动端选择器设计指南:从点击到滑动的全面解析,"['前端开发', '交互设计', '用户体验', '移动应用', 'UI设计']
摘要由CSDN通过智能技术生成


动态数组类设计

之前用C语言实现了动态数组库C语言动态数组数据类型(动态数组库),这里再用C++实现动态数组类。功能不如C语言动态数组库全,没写从头插入,根据下标插入和删除。反正要写也都差不多。有了运算符重载,根据下标访问还是方便了许多。
dynints_oop.h

#ifndef DYNINTS_H
#define DYNINTS_H

class DynInts {
   
private:
    const int capacity;//数组最大容量
    int count;//数组中实际有几个元素
    int *items;//指向动态分配的数组
    //bool modified;//数组是否改变,这个成员我感觉意义不大,不管了。
public:
    DynInts(int _cap): capacity(_cap), count(0), items(NULL) {
   }//构造函数,带一个参数,指定最大容量

    DynInts(const DynInts &a); //复制构造函数

    DynInts(int _cap, int *a, int n);
    //带三个参数的构造函数,第一个参数指定最大容量,
    //把第二个参数代表的数组(第三个参数是第二个参数数组的元素个数)复制进来,超出指定容量的话报错

    DynInts & operator =(const DynInts &a); //重载赋值运算符,不改动自身最大容量,赋值过来的数组若元素个数超出则报错。

    void push_back(int v);//在数组末尾添加一个元素

    ~DynInts() //析构
    {
   
        printf("析构函数调用\n");
        if (items) delete [] items;
    }

    int length() {
    return count;  }//返回元素个数

    int & operator [](int i) {
    return items[i]; }//根据下标访问元素

    void travel_by(void (*func)(int * data)); //遍历数组
};

#
  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值