明明没有任何错误,为什么会报访问权限冲突呢
#include <iostream>
using namespace std;
class SeqList {
public:
SeqList(int Maxsize = 100);
~SeqList() { delete[]data; }
void InitList();
void max();
int search(int x);
void showList();
int duichen();
void paixu();
private:
int* data; //存放数组
int MaxSize; //顺序表的最大元素数
int last; //顺序表当前已存数据项的最后位置(≥0)
};
SeqList::SeqList(int length) //顺序表类的构造函数
{
if (length > 0)
{
MaxSize = length; //顺序表长度
last = -1; //未存储数据时为-1
data = new int[MaxSize]; //创建顺序表数组
}
}
void SeqList::InitList() //为顺序表手动赋值
{
int i;
cout << "请输入10个整数,用空格分开:" << '\n';
for (i = 0; i < 10; i++)
{
cin >> data[i];
last++;
}
}
void SeqList::max() //求顺序表的最大元素
{
int i, m;
m = data[0];
for (i = 1; i < 10; i++)
{
if (data[i] > m)
m = data[i];
}
cout << "你输入的10个整数最大是:" << m << '\n';
cout << '\n';
}
int SeqList::search(int x) //查找特定的元素2
{
for (int i = 0; i <= last; i++)
{
if (data[i] == x)
{
return 1;
}
}
return 0;
}
void SeqList::showList() //遍历显示顺序表
{
for (int i = 0; i <= last; i++)
{
cout << data[i] << " ";
}
cout << endl;
}
int SeqList::duichen() //判断顺序表是否对称
{
if (last % 2 == 0)
{
for (int i = 0; i <= (last + 1) / 2; i++)
{
if (data[i] != data[last - i])
{
return 0;
}
}
}
else
{
for (int i = 0; i < last / 2; i++)
{
if (data[i] != data[last - i])
{
return 0;
}
}
}
return 1;
}
void SeqList::paixu() //对顺序表进行奇偶排序,奇数排在前偶数排在后
{
int temp;
for (int i = 0; i <= last - 1; i++)
{
for (int j = i + 1; j <= last; i++)
{
if (data[i] % 2 == 0 && data[j] % 2 != 0)
{
temp = data[j];
data[j] = data[i];
data[i] = temp;
}
}
}
}
int main()
{
SeqList a;
cout << "-------------创建表-------------" << endl;
a.InitList();
cout << "------------元素遍历------------" << endl;
a.showList();
cout << "------------最大数据------------" << endl;
a.max();
cout << "------------查找元素------------" << endl;
cout << a.search(2) << endl;
cout << "------------判断对称------------" << endl;
cout << a.duichen() << endl;
cout << "------------奇偶排序------------" << endl;
a.paixu();
a.showList();
}
运行结果如下
请问我应该如何解决问题呢?该做哪些改正?错误原因是什么呢?