infoarena

infoarena - concursuri, probleme, evaluator, articole => Informatica => Subiect creat de: Emanuel Truta din Mai 05, 2014, 16:13:12



Titlul: Operator++
Scris de: Emanuel Truta din Mai 05, 2014, 16:13:12
Salut !

M chinui deja de vreo doua ore pentru un operator++, la o clasa.

Asa arata clasa:

class Node {
private:
public:
   int key;
   Node* next;
   Node* prev;

   Node();
   Node operator ++(int);
};

Node::Node()
{
   key = 0;
   next = NULL;
   prev = NULL;
}



Cum ar trebui sa fac operatorul ++ ca urmatoarea chestie sa fie adevarata:

int main()
{
    Node* p;
    p = p->next;     // Linia asta a fie echivalenta cu "p++;"
}

In fine... Mai pe scurt vreau sa scriu un pointer p care sa faca "p = p->next" cand eu zic "p++";

Multumesc anticipat,
Manu.


Titlul: Răspuns: Operator++
Scris de: Adrian Budau din Mai 05, 2014, 18:17:20
Pe scurt, nu poti. p++ e deja devinit si face ceva foarte specific (deplaseasza pointerul spre dreapta). Poti sa iti mai faci o structura care sa contina un pointer si in acea structura sa implementezi operatorul++.