C++创建集合类型,求人找错~~

2025-02-24 23:02:56
推荐回答(2个)
回答1:

//Set.cpp
#include"Set.h"
Set::Set()
{
data=NULL;
}
Set::Set(Set&s1)
{
max=s1.num+10;
data=new int [max];
for(int i=0;i {
data[i]=s1.data [i];
}
num=s1.num;
}
void Set::create()
{
cout<<"please input the capacity of the Set:\n";
cin>>num;
cout<<"please input the Set:\n";
for(int i=0;i cin>>data[i];
}
void Set::print()
{
for(int i=0;i cout< cout<}
int Set::decide(int a)
{
int dec=0;
for(int i=0;i {
if(a==data[i])
dec=1;
}
return dec;
}
Set Set::operator <<(int a)
{
if(max==num||decide(a))
cout<<"error!\n";
else
data[num]=a;
num++;
return *this;
}
Set Set::operator >>(int a)
{
if(decide(a)==0||num==0)
cout<<"error!\n";
else
{
int m;
for(int i=0;i {
if(a==data[i])
m=i;
}
for(int i=m;i data[i]=data[i+1];
}
return *this;
}
Set Set::operator+(Set s1)
{
Set s2(*this);
for(int i=0;i s2< return s2;
}
Set Set::operator-(Set s1)
{
Set s2(*this);
for(int i=0;i s2>>s1.data[i];
return s2;
}
Set::~Set()
{
delete []data;
data=NULL;
}

回答2:

//main函数
#pragma once
#include"Set.cpp"
#include"Set.h"
void main()
{
Set s1;
s1.create();
s1.print();
Set s2,s3;
s2=s1<<10;
s3=s1>>5;
Set s4;
s4.create();
Set s5,s6;
s5=s1+s4;
s6=s1-s4;
s5.print();
s6.print();
}

编译出错,说什么构造函数不能有返回类型神马的~~求大神指点~~