#include<iostream>
using namespace std;//学会输入数组,类内有数组:地址等于地址 //如何搞类里面的数组的调取b1.a[i]
class CVector{
public:
CVector(){}
CVector(int _n,int *_data){
n=_n;
data=new int [n];
for(int i=0;i<n,i++){
data[i]=_data[i];
}
}
CVector(const CVector &obj){
n=obj.n;
data=new int [n];
for(int i=0;i<n;i++){
data[i]=_data[i];
}
}
void print(){
for(int i=0;i<n;i++){
cout<<*(data+i)<<' ';
}
cout<<endl;
}
friend CVector Add(const CVector V1,const CVector V2);
~CVector(){};
private:
int *data;//存储n维向量
int n; //向量维数。
};
CVector Add(const CVector V1,const CVector V2){
for(int i=0;i<V1.n;i++){
V2.data[i]=V1.data[i]+V2.data[i];
}
return V2;
}
int main(){
int test;
cin>>test;
while(test--){
int t;
cin>>t;
int *p1=new int[t];
int *p2=new int[t];
for(int i=0;i<t;i++){
cin>>*(p1+i);
}
CVector V1(t,p1);
for(int i=0;i<t;i++){
cin>>*(p2+i);
}
CVector V2(t,p2);
V1.print();
V2.print();
Add(V1,V2).print();
delete []p1;
delete []p2;
}
return 0;
}
- 类的功能:默认构造,有参构造,拷贝构造,void输出,友元实现加法、
- 主函数的功能
拷贝构造调用了三次(如果有动态分配内存就需要深拷贝,即自己写拷贝构造函数和析构函数·,赋值运算符的重载,以免发生内存泄漏)
1.CVector add()初始化v1
2.CVector add()初始化v2
3.CVector add()return v2时