一个C++工程
main.cpp
#include<stdio.h>
#include"Array.h"
int main()
{
Array a1(10);
for(int i=0;i<a1.length();i++)
{
a1.setdata(i,i);
}
for (int j=0; j<a1.length(); j++)
{
printf("Element %d : %d \n ",j,a1.getdata(j));
}
a1.destroy();
printf("press any key to continue...");
getchar();
return 0;
}
Array.h
#ifndef _Array_H_
#define _Array_H_
class Array
{
private:
int mlength;
int* mspace;
public:
Array(int length); //构造函数
Array(const Array& obj); //构造函数(实现复制功能)
int length();
void setdata(int index, int value);
int getdata(int index);
~Array();
};
#endif
Array.cpp
#include "Array.h"
Array::Array(int length)
{
if(length<0)
{
length=0;
}
mlength=length;
mspace=new int[mlength];
}
Array::Array(const Array& obj)
{
mlength=obj.mlength;
mspace=new int(mlength);
for(int i=0; i<mlength;i++)
{
mspace[i]=obj.mspace[i];
}
}
int Array::length()
{
return mlength;
}
void Array::setdata(int index, int value)
{
mspace[index]=value;
}
int Array::getdata(int index)
{
return mspace[index];
}
Array::~Array() ///析构函数 销毁对象前 释放内存 自动调用
{
mlength=-1;
delete[] mspace;
}