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);
}
///////////////////////////////////////////////////////////////