Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di Mega-X
    Registrato dal
    Dec 2008
    Messaggi
    19

    [C++] [OOP] Errore circa la dichiarazione di un costruttore per copia

    Salve.

    Ho una classe array scritta in C++ che riutilizzerò in altre classi, ed ho problemi riguardo la dichiarazione del costruttore per copia ottenuto overloaddando l'operatore =.

    Vi mostro il codice che è più chiaro di un migliaio di parole:

    codice:
    template <typename T>
    
    class array
    
    {
    
    private:
    
    	unsigned int _length; // Il numero di elementi corrente
    
    	unsigned int max; // La grandezza massima dell'array fino ad un determinato momento
    
    	T *_array; // Il puntatore
    
    
    
    public:
    
    	array<T>(unsigned int n);
    
    	virtual ~array();
    
    	const array& operator=(const array& A); // Costruttore per copia
    
    	T& get(unsigned int index); // Restituisce l'i-esimo elemento
    
    	void add(T x, int i); // Aggiungi l'elemento x in posizione i
    
    	unsigned int length();
    
    	T& remove(unsigned int index); 
    
    };
    
    [...]
    
    template <typename T> const array& array<T>::operator=(const array& A)
     //Questa riga dà l'errore
    {
    
    	delete[] _array;
    
    	_array = A;
    
    	return A;
    
    }
    E quando compilo mi dà il seguente errore:
    codice:
    array.h:40: error: expected initializer before '&' token
    Dov'è che sbaglio?
    www.lastfm.it/user/WTFucker

  2. #2

    Re: [C++] [OOP] Errore circa la dichiarazione di un costruttore per copia

    Originariamente inviato da Mega-X
    ho problemi riguardo la dichiarazione del costruttore per copia ottenuto overloaddando l'operatore =.
    Attento (ancor prima di leggere il codice che hai postato)

    Il costruttore di copia è una cosa, l'assegnamento un'altra.

  3. #3
    Utente di HTML.it L'avatar di Mega-X
    Registrato dal
    Dec 2008
    Messaggi
    19
    La so la differenza fra assegnamento e costruttore di copia (), solo che il compilatore mi dà un errore super-strano che ho appunto descritto sopra.
    www.lastfm.it/user/WTFucker

  4. #4
    Stai scrivendo un template quindi:


    Codice PHP:
    template <typename T> const array<T>& array<T>::operator=(const array& A){...} 
    nota il <T> prima di &.

    Spero di esserti stato utile

  5. #5
    Utente di HTML.it L'avatar di Mega-X
    Registrato dal
    Dec 2008
    Messaggi
    19
    Ecco dov'era il problema...

    Grazie a tutti per l'aiuto!
    www.lastfm.it/user/WTFucker

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.