C++创建集合类型,求人找错~~ 20
//Set.h#include<iostream>usingnamespacestd;classSet{public:Set();Set(Set&s1);voidcrea...
//Set.h
#include<iostream>
using namespace std;
class Set
{
public:
Set();
Set(Set&s1);
void create();
void print();
int decide(int a);//判断该元素是否在集合中。
Set operator <<(int a);//加入某元素
Set operator >>(int a);//去掉某元素
Set operator +(Set s1);//求并集
Set operator -(Set s2);//求差集
~Set();//析构函数
private:
int *data;
int num, max;
}
Set.cpp和main函数在楼下~~求大神指点~~~ 展开
#include<iostream>
using namespace std;
class Set
{
public:
Set();
Set(Set&s1);
void create();
void print();
int decide(int a);//判断该元素是否在集合中。
Set operator <<(int a);//加入某元素
Set operator >>(int a);//去掉某元素
Set operator +(Set s1);//求并集
Set operator -(Set s2);//求差集
~Set();//析构函数
private:
int *data;
int num, max;
}
Set.cpp和main函数在楼下~~求大神指点~~~ 展开
2个回答
展开全部
//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<s1.num;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<num;i++)
cin>>data[i];
}
void Set::print()
{
for(int i=0;i<num;i++)
cout<<data[i]<<" ";
cout<<endl;
}
int Set::decide(int a)
{
int dec=0;
for(int i=0;i<num;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<num;i++)
{
if(a==data[i])
m=i;
}
for(int i=m;i<num-1;i++)
data[i]=data[i+1];
}
return *this;
}
Set Set::operator+(Set s1)
{
Set s2(*this);
for(int i=0;i<s1.num;i++)
s2<<s1.data[i];
return s2;
}
Set Set::operator-(Set s1)
{
Set s2(*this);
for(int i=0;i<s1.num;i++)
s2>>s1.data[i];
return s2;
}
Set::~Set()
{
delete []data;
data=NULL;
}
#include"Set.h"
Set::Set()
{
data=NULL;
}
Set::Set(Set&s1)
{
max=s1.num+10;
data=new int [max];
for(int i=0;i<s1.num;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<num;i++)
cin>>data[i];
}
void Set::print()
{
for(int i=0;i<num;i++)
cout<<data[i]<<" ";
cout<<endl;
}
int Set::decide(int a)
{
int dec=0;
for(int i=0;i<num;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<num;i++)
{
if(a==data[i])
m=i;
}
for(int i=m;i<num-1;i++)
data[i]=data[i+1];
}
return *this;
}
Set Set::operator+(Set s1)
{
Set s2(*this);
for(int i=0;i<s1.num;i++)
s2<<s1.data[i];
return s2;
}
Set Set::operator-(Set s1)
{
Set s2(*this);
for(int i=0;i<s1.num;i++)
s2>>s1.data[i];
return s2;
}
Set::~Set()
{
delete []data;
data=NULL;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
//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();
}
编译出错,说什么构造函数不能有返回类型神马的~~求大神指点~~
#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();
}
编译出错,说什么构造函数不能有返回类型神马的~~求大神指点~~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询