C、C++之动态数组的实现二(C++版本)

本文详细介绍了如何使用C++实现动态数组类,包括构造函数、析构函数、recap函数、append函数、copy函数、compare函数和insert函数的设计与实现。通过封装,简化了动态数组的管理和操作,同时探讨了构造函数中内存分配的选择和异常处理的考虑。
摘要由CSDN通过智能技术生成

c、c++动态数组(c++版本)

本篇文章基于笔者正在参与的c++课程,第二次作业的内容是要求使用c++的特性对上一次的程序实现改进并封装(上一版本戳我)。

严格来说,上一个版本不能算是纯粹的C语言版本,这是因为代码中使用了c++的引用特性,这是C语言所不包含的。然而,这是由于测试代码的限制,因而我们还是把它看做C语言的实现。(也可以编写一种不包含引用的代码来达到相同的效果,这要求使用到宏定义和一种称之为“wrapper”的小技巧)

闲话少叙,先放出新的测试代码,再具体讨论各个函数的改写方法。

//LibArray.cpp
// 实验内容:
// 1:将C语言版本LibArray用C++封装,注意,原C版本保留一个备份

// 实验目的:
// 1:C++类定义的基本方法

// 只提交CLibArray.cpp及CLibArray.h

#include "stdafx.h"
#include <assert.h>
#include "CLibArray.h"

int _tmain(int argc, _TCHAR* argv[])
{
    CArray array;
    // 不再需要initial,但应该有正确的初始化
    // array_initial(array); 

    //array.recap(10); 
    //assert(array.capacity() == 10); 

    //////////////////////////////////////////////////////////////////////////
    for (int i = 0; i < 20; ++i)
    {
        array.append(i); 
    }
    assert(array.size() == 20); 

    for (int i = 0; i < array.size(); ++i)
    {
        assert(array.at(i) == i); 
    }

    ///////////////////////////////////////////////////////////////
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值