链表数据结构中的C++重载运算符>>



我有一个链表

template<class T> 
class Node<T>
{
    typedef T elementType;
    typedef Node<T>* position;
    elementType _element;
    position _next; 
};

template <class T>
class LinkedList
{
     public:
          typedef  Node<T>::position position;  
          typedef  Node<T>::elementType elementType; 
           //operatori
           bool empty() constprevious;
           unsigned int size() constprevious; //convertire il tipo ritornato in unsigned int!! per tutte classi e metodi rilevanti **LEO**
           elementType read(const position) constprevious;
           void write(const position p, const elementType)previous;
           void insert(const elementType)previous;
           void insert(const position, const elementType)previous;
           void delete(position)previous;
           position first() constprevious;
           position last() constprevious;
           position next(position) constprevious;
           position previous(position) constprevious;
           void deleteAll();
    private:
        position _first;
            position _last;
            int _numElements;   
};

template<class T>
istream &operator>> (istream &input, LinkedList<T> &linkedList )
{
 //operator Code 
    return is;
}

**请注意:上面的代码可能不会编译,因为我修改了我的原始代码,这要长得多。不管怎样,既然我只需要一个如何进行的指示,那应该没问题

我想重载运算符>>,这样我就可以在代码中编写类似的东西

#include <cstdlib>
#include <iostream>
using namespace std;
//#include "LinkedList.h"

int main(int argc, char *argv[])
{
 LinkedList linkedList;
 cin>>linkedList; //<-- operator>> call.
    system("PAUSE");
    return EXIT_SUCCESS;
}

但是,如何实现>>运算符,使其独立于流类型(文件、键盘)?

我在谷歌上找不到任何关于这件事的信息。

C++输入流共享一个公共的基本istream,因此,如果根据istream重载operator>>,则该实现对每种类型的输入流都有效。

请检查类似问题的答案。它得到了充分的解释。

最新更新