[C++] errore sulla conversione di tipi di funzioni
ciao a tutti, cercavo di implementare l'operatore di assegnazione ma nel compitare ottengo il seguente errore, che non comprendo e che non riesco a risolvere: "error: cannot convert ‘double*’ to ‘vettore*’ in assignment"
inquadro il problema e poi il codice che ho scritto.
ho una classe che tratta vettori composta da questi data-membri:
a questo punto ho creato un'altra classe che eredita dalla precedente e che tratta vettori n dimensionali. in questa classe mi serve di reimplementare l'operatore di assegnazione. il codice che ho scritto è il seguente
dove [inline]getN()[/inline] di tipo [inline]unsigned int[/inline] restituisce la dimensione del vettore che passo come referenza.
in particolare l'errore è nella prima riga dell'implementazione( [inline]_v = new double[b.getN()][/inline] ).
ringrazio in anticipo per l'aiuto.
inquadro il problema e poi il codice che ho scritto.
ho una classe che tratta vettori composta da questi data-membri:
private: unsigned int _N; double * _v; public: vettore(); vettore(unsigned int N); ~vettore(); vettore(const vettore &); vettore & operator=(const vettore &);
a questo punto ho creato un'altra classe che eredita dalla precedente e che tratta vettori n dimensionali. in questa classe mi serve di reimplementare l'operatore di assegnazione. il codice che ho scritto è il seguente
VettoreLineare VettoreLineare::operator= (const VettoreLineare& b) { _v = new double[b.getN()]; for(unsigned int i=0; i<getN(); i++){ _v[i]=b.getComponenti(i); } return *this; }
dove [inline]getN()[/inline] di tipo [inline]unsigned int[/inline] restituisce la dimensione del vettore che passo come referenza.
in particolare l'errore è nella prima riga dell'implementazione( [inline]_v = new double[b.getN()][/inline] ).
ringrazio in anticipo per l'aiuto.
Risposte
Devi mostrare più codice perché nella parte che hai inserito non vedo alcun problema. In particolare, in che modo hai ereditato la classe? Hai aggiunto delle variabili membro?
ho appena risolto il problema rispondendo al messaggio. ad ogni modo grazie per l'interessamento
