题解 | #数组类的拷贝构造函数#

数组类的拷贝构造函数

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之前的数组,重新定义自己的变量,构造出与被拷贝函数一模一样的变量

全部评论

相关推荐

点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务