您的位置:首页 > 编程语言 > C语言/C++

初学cpp<classl类02>

2013-03-20 17:09 162 查看
#include<iostream>
using namespace std;

class Array
{
public:
Array();   //无参数的构造函数
Array(int n);   //带参数的构造函数
Array(const int a[],int n);    //构造函数,用数组a对动态数组进行初始化,n为a数组的长度
Array(const Array &v);      //复制构造函数,实现深复制
~Array();                   //析构函数
void Show();         //显示数据
void Resize(int n);     //动态数组重新设定长度,n为重新设定的数组长度。
//如果n比原数组长度小,则取原数组的前n个元素给重新设定
//的数组;如果n比原长度大,则将原数组的所有数组元素
//给重新设定的数组

private:
int *p;
int size;
};

Array::Array()
{
int i;
size=5;
p=new int[size];
for(i=0;i<size;i++)
p[i]=0;
}
Array::Array(int n)
{
int i;
size=n;
p=new int[size];
for(i=0;i<size;i++)
p[i]=0;
}

Array::Array(const int a[],int n)
{
int i;
size=n;
p=new int[size];
for(i=0;i<n;i++)
p[i]=a[i];
}

Array::Array(const Array &v)
{
int i;
int *pa;
pa=v.p;
size=v.size;
p=new int[size];
for(i=0;i<size;i++)
p[i]=pa[i];
}

Array::~Array()
{
delete p;
cout<<"执行析构函数!"<<endl;
}

void Array::Show()
{
int *pa;
int i;
pa=p;
for(i=0;i<size;i++)
cout<<pa[i]<<",";
}

void Array::Resize(int n)
{
int a[100];
int i;
for(i=0;i<size;i++)
{
a[i]=0;
a[i]=p[i];
}
size=n;
p=new int[size];
for(i=0;i<size;i++)
p[i]=a[i];
}

int main()
{
Array a1;
a1.Show();
system("pause");
Array a2(10);
a2.Show();
system("pause");
int b[5]={1,2,3,4,5};
Array a3(b,5);
a3.Show();
system("pause");
Array a4(a3);
a4.Show();
system("pause");
a4.Resize(3);
a4.Show();
system("pause");
a4.Resize(5);
a4.Show();
system("pause");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: