题解 | #数组类的拷贝构造函数#
数组类的拷贝构造函数
https://www.nowcoder.com/practice/73014020b7d54622ac5000b06eaaa4ef
#include<bits/stdc++.h> using namespace std; class Array{ private: int n;//数组大小 int *a;//数组 public: Array(){ cin>>n; a=new int [n]; for (int i=0;i<n;i++) cin>>a[i]; } ~Array(){ delete []a; } int getlen(){ return n; } int get(int i){ return a[i]; } // write your code here...... Array(Array &array){ delete [] a; n=array.getlen(); a=new int [n]; for (int i=0;i<n;i++) { a[i]=array.get(i); } } void show(){ for (int i=0;i<n;i++) cout<<a[i]<<' '; } }; int main(){ Array a; Array b=a; b.show(); return 0; }
注意拷贝函数,参数中要使用引用方式。
并且要delete之前的数组,重新定义自己的变量,构造出与被拷贝函数一模一样的变量