总是提示访问路径出现冲突 研究了半天才知道是 数组的问题 请看到的大神
帮帮忙 谢谢
(vs平台上的)
代码在下面
这是头文件部分
#include<iostream>
using namespace std;
class Array
{
private://私有数据成员:
int *a;// 指向根据len动态申请的数组空间
int len;// 有效数组元素的个数
public://公有成员函数 :
Array(int b[], int length);// 构造函数, 使用数组b初始化a所指的动态数组, length初始化len
Array(const Array &arr);// 拷贝构造函数,使用对象arr初始化新对象
void sort();// 按题意对动态数组中的元素进行排序
void print();// 输出a所指向的数组
~Array();// 析构函数, 释放动态数组空间
};
这是成员函数部分
#include"array.h"
using namespace std;
Array::Array(int b[], int length)// 构造函数, 使用数组b初始化a所指的动态数组, length初始化len
{
int i;
int *a = new int[length];
len = length;
for (i = 0; i<len; i++)
{
a[i]= b[i];
}
}
Array::Array(const Array &arr)// 拷贝构造函数,使用对象arr初始化新对象
{
int i;
len = arr.len;
int *a=new int[len];
for (i = 0; i < len; i++)
{
a[i] = arr.a[i];
}
}
void Array::sort()// 按题意对动态数组中的元素进行排序
{
int i,j;
int temp;
for(i=0;i<len;i++)
{
for(j=i+1;j<len;j++)
{
if(a[i]<a[j])
{
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
}
void Array::print()// 输出a所指向的数组
{
int i;
for(i=0;i<len;i++)
{
cout<<a[i]<<endl;
}
}
Array::~Array()// 析构函数, 释放动态数组空间
{
delete []a;
}
这是主函数
#include"array.h"
using namespace std;
int main()
{
int num;
int i;
int a[50];
cout<<"输入数组的元素个数"<<endl;
cin>>num;
for(i=0;i<num;i++)
{
cin>>a[i];
}
Array text(a,num);
text.sort();
text.print ();
system("pause");
return 0;
}