#include<iostream>
using namespace std;
class vect {
public:
vect() {
int i;
arr = new int[5]{1,2,3,4,5};
size = 5;
}//默认构造
vect(int s){
int i;
arr = new int[s]();
size = s;
}//有参构造
vect(vect &v){
int i;
arr = new int[v.size];
size = v.size;
for(i = 0;i < size;i ++ ){
arr[i] = v.arr[i];
}
}//拷贝构造
int get(int p){
return arr[p];
}
void input(int a,int num) {
if(a < 0||a > size){
cout<<"out of boundary"<<endl;
}else{
arr[a] = num;
}
}
void disp(){
for(int i = 0;i < size;i ++ ){
cout<<arr[i]<<' ';
}
cout<<endl;
}
~vect(){
delete []arr;
arr = NULL;//防止成为野指针
}
private:
int *arr;
int size;
};
int main(){
vect v1;
int n;
int a,num;
cin>>n>>a>>num;
vect v2(n);//有参构造函数调用
v1.disp();
v2.disp();
v1.input(a,num);
vect v3(v1);//拷贝构造函数调用
v1.disp();
v3.disp();
return 0;
}
问题 E: oop实习-5.类的定义_深拷贝
最新推荐文章于 2024-07-14 23:26:21 发布