题解 | #数组类的拷贝构造函数#
数组类的拷贝构造函数
http://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& arr) {
this->n = arr.getlen(); //
this->a = new int[n];
for (int i = 0; i < arr.n; ++i) {
this->a[i] = arr.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;
}