//SET2.H
//Определение АТД множество Set(набор символов)-класс Set
#ifndef SET2H
#define SET2H
const int DEFSET=25;
template <class Stype> class Set {
Stype *SetPtr;
int MaxSize;
int NumMember;
//защищенные компоненты
protected:
void insert(Stype member);
int find(Stype member);
void remove (Stype member);
int ismember(Stype member);
//общедоступные компоненты
public:
Set();
Set(int size);
Set(const Set &ASet);
~Set(){delete[] SetPtr;}
Set &operator=(Set &ASet);
Set operator+(Stype member);
Set operator+(Set &ASet);
Set operator-(Stype member);
Set operator-(Set &ASet);
Set operator*(Set &ASet);
int operator==(Set &ASet);
int operator!=(Set &ASet);
int operator<(Set &ASet);
Set &operator()(int k,...);
operator int(){return NumMember;};
friend Set operator+(Stype member,Set &ASet);
friend int operator<(Stype member,Set &ASet);
friend istream &operator>>(istream &stream,Set &ASet);
friend ostream &operator<<(ostream &stream,Set &ASet);
};
#endif
