Originariamente inviato da MItaly
Quei "posizione &" non sono puntatori, ma reference, i quali, pur essendo dei puntatori nascosti, di fatto hanno la sintassi di normali variabili "by value". Quindi, puoi togliere l'& senza problemi, la sintassi non cambia.
Piuttosto, tieni presente che in questa maniera passi da passaggio by reference a passaggio by value, che, se può avere senso per gli indici (che non dovrebbero essere roba pesante), per gli oggetti da memorizzare sarebbe da evitare, perché il passaggio by value nella funzione richiede una ulteriore copia inutile.
Conta che in questo caso quel "posizione" sarebbe una typedef di un oggetto di tipo cella si fatto:

codice:
template <class T>
class Cella
  {
    
    public:
    typedef T tipoelem;
    void setElemento(tipoelem);
    tipoelem getElemento() const;
    void setSucc(Cella *);
    Cella * getSucc() const;
    void setPrec(Cella *);
    Cella * getPrec() const;
  private:
    tipoelem elemento;
    Cella * prec;
    Cella * succ;
  };
Ma cosi facendo non ho capito bnee, contando che sono funzioni "che modificano la lista", ovvero cancellamento ed inserimento di un nuovo elemento, le operazioni vengono fatte ugualmente e rimangono permanenti anche senza quell'operatore di reference?