友员
#define maxcard 32
#include<iostream.h>
class realset;
enum errcode{noerr,overflow};
class realset;
class intset {
int elems[maxcard];
int card;
public:
intset(){card=0;}
errcode addelem(int);
void print();
void settorea(realset *);
friend void realset::settoint(intset *);
};
class realset{
float elems[maxcard];
int card;
public:
void settoint(intset *);
realset(){card=0;}
errcode addelem(float);
void print();
friend void intset::settoreal(realset *);
};
errcode intset::addelem(int elem)
{
for(int i=0;i<card;i++)
if(elems[i]==elem)
return noerr;
if(card<maxcard)
{
elems[card++]=elem;
return noerr;}
else return overflow;
}
void intset::print()
{
cout<<"{";
for(int i=0;i<card-1;++i)
cout<<elems[i]<<",";
if(card>0)
cout<<elems[card-1];
cout<<"}\n";
}
void intset::settorea(realset *set)
{
for(int i=0;i<card;i++)
set->addelem((float)elems[i]);
}
errcode realset::addelem(float elem)
{
for(int i=0;i<card;i++)
if(elems[i]==elem)
return noerr;
if(card<maxcard)
{
elems[card++]=elem;
return noerr;}
else return overflow;
}
void realset::print()
{
cout<<"{";
for(int i=0;i<card-1;++i)
cout<<elems[i]<<",";
if(card>0)
cout<<elems[card-1];
cout<<"}\n";
}
main()
{
intset set1;
realset *set2;
set2=new realset;
set1.addelem(12);
set1.addelem(278);
set1.addelem(54);
set1.addelem(459);
set1.print();
set1.settorea(set2);
set2->print();
delete set2;
return 1;
}