有关“=”重载的有关问题

有关“=”重载的问题
请问“=”号的重载有什么问题,请帮指正一下!

C/C++ code
 
template <class T>
class SeqList
{
private:
T *data;
int size;
int MaxSize;
public:
SeqList(int sz = 100);
~SeqList() { delete []data; }
int Length() const { return size; }   
bool IsEmpty() const { return size == 0; }
void Insert(const T &x, int k);
void Delete(int k);
T GetData(int k) const;
int Find(const T &x) const;
int countSize(){return size;}
void Output(ostream &out) const;
};

template <class T>
SeqList <T>::SeqList(int sz)
{ MaxSize=sz;
data=new T[MaxSize];
size=0;
}

template <class T>
void SeqList <T>::Insert(const T &x, int k)
{
if( k <1 || k>size+1 )
{ cerr < <"越界出错"; exit(1); }   
if(size==MaxSize)
{ cerr < <"顺序表已满"; exit(1); }   
for(int i=size-1; i>=k-1; i--) data[i+1]=data[i];
data[k-1]=x;
size++;
}

template <class T>
void SeqList <T>::Delete(int k)
{
if(size==0)
{ cerr < <"顺序表空"; exit(1); }     
if( k <1 || k>size )
{ cerr < <"越界出错"; exit(1); }     
for(int i=k; i <size; i++) data[i-1]=data[i];
size--;
}

template <class T>
T SeqList <T>::GetData(int k) const
{
if( k <1 || k>size )
{ cerr < <"越界出错"; exit(1); }   
return data[k-1];
}

template <class T>
int SeqList <T>::Find(const T &x) const
{
int i=0;
while(i <size && data[i]!=x) i++;
if(i <size) return i+1;
else return 0;
}

/*或
template <class>
int SeqList <T>::Find(const T &x) const
{
    for(int i=0; i <size; i++)
        if(data[i]==x) return i+1;
    return 0;   
} //*/

template <class T>
void SeqList <T>::Output(ostream &out) const
{
for(int i=0; i <size-1; i++)
out < < data[i] < < ", ";
cout < < data[size-1];
}

template <class T>
ostream& operator < <(ostream &out, const SeqList <T> &x)
{
x.Output(out);
return out;
}

C/C++ code

#include <fstream>
#include "SeqList.h"

using namespace std;

template <typename T>
class Set
{
public:
    Set( int sz = 100 );
    ~Set(){ delete []seqSet; }
    void IsEmpty();
    void addMember(const T x);
    void delMember(const T x);
    void display();
    void Contains(const T x);
    void count();
    T getElement(int k) const;
    Set<T>& operator=(const Set<T>& R);

private:
    SeqList<T> *seqSet;
};

template <typename T>
Set<T>::Set(int sz )
{
    seqSet = new SeqList<T>( sz );
}

template <typename T>
void Set<T>::IsEmpty()
{
    if(seqSet->IsEmpty())
    {
        cout << "空!" << endl;
    }
    else
    {
        cout << "不为空!" << endl;
    }
}

template <typename T>
void Set<T>::addMember(const T x)
{
    seqSet->Insert(x, 1);
}

template <typename T>
void Set<T>::delMember(const T x)
{
    seqSet->Delete(seqSet->Find(x));
}

template <typename T>
void Set<T>::display()
{
    cout << "{ ";
    seqSet->Output(cout);
    cout << " }";
}

template <typename T>
void Set<T>::Contains(const T x)
{
    if(seqSet->Find( x ))
    {
        cout << "包含此元素!" << endl;
    }
    else
    {
        cout << "不包含此元素!" << endl;
    }
}

template <typename T>
void Set<T>::count()
{
    cout << seqSet->countSize();
}

template <typename T>
T Set<T>::getElement(int k) const
{
    return seqSet->GetData(k);
}

template <typename T>
Set<T>& Set<T>::operator =(const Set<T> &R)
{
    delete []seqSet;
    seqSet = new SeqList<T>(R.seqSet->countSize());
    for ( int i = R.seqSet->countSize(); i < 1; i-- )
    {
        seqSet->Insert(R.getElement(i),i);
    }
     return this;
}