Przeciążanie operatora wejścia/wyjścia

0

Cześć,

Tak jak w temacie... Operator wyjścia chyba jest dla mnie jasny, bo ma za zadanie wypisanie tego, co znajduje się wewnątrz listy, czyli mógłbym tam umieścić funkcję printList(), której kod poniżej? A co z operatorem wejścia? Nie bardzo wiem, co taki operator ma robić, skoro mam metodę addFirstNode - która dodaje element do listy. Mógłby ktoś podpowiedzieć w tej sprawie?


void printlist(){
    Node *tmp = new Node;
    tmp = head;
    while(tmp != NULL){
        cout << tmp->data << "\t";
        tmp = tmp->next;
    }
}
 
void addFirstNode(int value){
    Node *tmp = new Node;
    tmp->data = value;
    tmp->next = head;
    head = tmp;
}


0

Nie bardzo wiem, co taki operator ma robić, skoro mam metodę addFirstNode - która dodaje element do listy.

Skoro operator<< wypisuje zawartość listy na wyjście, to niech adekwatnie do tego operator>> pobiera z wejścia do listy wszystkie dane,
jakie mają znaleźć się w liście.

BTW: ja przeciążyłbym oba operatory dla Node i w pętli używał

void printlist(){
    Node *tmp = new Node;
    tmp = head;
    while(tmp != NULL){
        cout << *tmp << '\n'; // użycie przeciążonego operatora<<
        tmp = tmp->next;
    }
} 

while(//są dane wejściowe){
    void addFirstNode(int value){
        Node *tmp = new Node;
        cin >> *tmp; // użycie przeciążonego operatora>>
        head = tmp; 
    } 
}
0

Czyli rozumiem, że operator<< wyjścia ma po prostu w pętli wywoływać metodę printList, a operator>> ma w pętli wywoływać addFirstNode, tak?

0

istream & operator >>(istream & in, Node & NodeInput)
chodzi o stworzenie czegoś takiego? i analogicznie potem ostream?

0 użytkowników online, w tym zalogowanych: 0, gości: 0