对于整数的i++、++i之间的区别就不赘述啦!有时候我们需要重载++,比如说自己写的迭代器,让我们的迭代器重载的++和整数的++达到同样的效果。
形式:
operator++ ();//前加加
operator++ (int);//后加加
注;这里的int,没有什么特别的意识,只是为了区别两种不同的重载方式。
我的上一篇博客写了一个单向链表:https://blog.csdn.net/shaochuang1/article/details/100692545
我就直接修改这个单向链表的代码,如果嫌麻烦,可以直接看下面的总结。
代码:
#ifndef _MYLIST_H
#define _MYLIST_H
template<class T> class Node;//Node,Mylist两个类相互依赖,需要做一个声明
template<class T> class MyList_Iterator;
/****************************************************************************/
template<class T>
class MyList
{
public:
void Add(const T& item);//向列表头部加入新元素
void Delete(const T& item);//删除第一个与item相等的元素
void Invert();//反转列表
void Conect(MyList<T>& OldList);//连接
bool IsEmpty();
Node<T>* Begin();
Node<T>* End();
MyList() : P_first(nullptr) {}
~MyList(){ }
void Show();//测试用,打印出所有的元素
private:
Node<T>* P_first;//指向列表的第一个元素
};
template<class T>
void MyList<T>::Add(const T& item)
{
Node<T>* P_new_