1.cpp
#include<iostream>
using namespace std;
#include "1.h"
int main()
{
TArray a(10); // a是一个double 类型的长度为10动态数组
TArray b; // b是一个double 类型的尚未确定其长度的动态数组
b.SetLen(7); // 使b成为一个长度为7的动态数组
double d[10] = { 1,2,3,4,5,6,7,8,9,10 };
a.Input(d,10); // 把c中的10个元素复制到a中
a.Print(); // 打印a中的元素
TArray c(a); // 创建了一个与a一样的c数组
b = a; // 把a的内容复制给b
a.SetElem(0,6); // 把第0个元素的值重新赋值为6
b.Exchange(4,2); // 交换b中第4个和第2个元素的内容
b.Print(); // 打印b中的元素
a.Print(); // 打印a中的元素
c.Print(); // 打印c中的元素
return 0;
}
h
#include<iostream>
using namespace std;
class TArray
{
private:
double *a;
int n;
public:
TArray();
TArray(int number);
TArray(TArray &p);
void SetLen(int m);
void Input(double *b,int m);
void Print();
void SetElem(int m,double r);
void Exchange(int m,int r);
TArray operator=(TArray);
~TArray();
};
TArray::TArray()
{
a=new double[n];
}
TArray::TArray(TArray &p)
{
a=p.a;
n=p.n;
}
TArray::TArray(int number)
{
n=number;
}
void TArray::SetLen(int m)
{
n=m;
}
void TArray::Input(double *b,int m)
{
for(int i=0;i<m;i++)
{
a[i]=b[i];
}
}
void TArray::Print()
{
for(int i=0;i<n;i++)
{
cout<<a[i]<<" ";
}
}
void TArray::SetElem(int m,double r)
{
a[m]=r;
}
void TArray::Exchange(int m,int r)
{
double temp;
temp=a[m];
a[m]=a[r];
a[r]=temp;
}
TArray TArray::operator=(TArray c)
{
TArray temp;
temp.a=c.a;
temp.n=c.n;
return temp;
}
TArray::~TArray()
{
delete []a;
}
大概是构造函数对指针数组的初始化有问题,大神能不能帮忙改改?我看见指针数组就头疼,能不能具体讲讲指针数组的问题?谢了。。。邮箱403621692@qq.com
满意请采纳哦!
有问题私信或者qq慢慢问吧