C++类的问题,成员函数,变量分不清

 #if !defined_LIST_H_
#define _LIST_H_
//单链表定义


template<class T> //链表节点类的定义

struct LinkNode
{
    T data; //数据域
    LinkNode<T>*link;  //链指针域
    LinkNode(LinkNode<T> *ptr =NULL) {link=ptr;}
    LinkNode(const T&item,LinkNode<T> *ptr=NULL)
    {
        data=item;
        link=ptr;
    }
};

template<class T>
class List
{
    public:
        List(){first=new LinkNode<T>;}
        List(const T &x){first= new LinkNode<T>(x);}
        List(List<T> &L);
        ~List(){makeEmpty();}
        void makeEmpty();
        int Length() const;
        LinkNode<T> *getHead()const{return first;}
        LinkNode<T> *Search(T x);
        LinkNode<T> *Locate(int i);
        bool getData(int i,T &x)const;
        void setData(int i,T &x);
        bool Insert(int i, T &x);
        bool Remove(int i, T &x);

        bool IsEmpty()const
        {
            return first->link==NULL?true:false;
        }
        bool IsFull()const{return false ;}

        void Sort();
        void inputFrond (T endTag);
        void output();
        List<T>&operator=(List <T>&L);

    protected:
        LinkNode<T> *first;


};

下面是我对这个类的理解,有没错啊?
List&operator=(List &L);//这句看不懂是什么??
List(List &L);//这句是复制的意思吗?

类List
构造函数:
List()
List(const T &x)
List(List &L)

析构函数:
~List();

成员函数:
makeEmpty()
Length()
get()
Search(T x)
Locate(int i)

getdata()
stdata()
insert()
remove()
isempty()
isfull()

sort()
inputfrond()
output()

变量:first

 List<T>&operator=(List <T>&L);
重载等号赋值运算符

List(List &L);
拷贝构造函数

List&operator=(List &L);//这句看不懂是什么?? --- 重载赋值函数
List(List &L);//这句是复制的意思吗? --- 重载拷贝构造函数