初学cpp<classl类02>

来源:互联网 发布:国际象棋跑分软件 编辑:程序博客网 时间:2024/06/07 15:39
#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;}

原创粉丝点击