C++动态数组类设计


动态数组类设计

之前用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)); //遍历数组
};

#endif
  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值