Riproduzione classe Vector

Andrea477

Nuovo Utente
6 Dic 2019
3
0
1
Salve, sono nuovo del forum, oggi avevo bisogno di chiedere un aiuto alla vostra comunità per un problema che ho riscontrato nel riprodurre una classe Vector. Come dice il nome stesso questa sarà una classe template <class Type> class Vector che si comporterà similmente alla standard std::vector<...>. In realtà questo è solo una delle classi che ho intenzione di creare per una libreria che vorrei condividere una volta completa (non a scopi di lucro).
Il mio problema consiste in un'anomalia, probabilmente dovuta a qualche errore concettuale che non riesco a scovare, quando uguaglio due Vector<stesso tipo> nella funzione inline void operator=(const Vector<Type> value) {...}. Quando compilo non mi dà errori bensì inserisce un punto d'interruzione nel distruttore della classe. Ho fatto dei test per provare a capire quando viene effettivamente chiamato il distruttore ma come risultato ho notato che viene chiamato alla fine della funzione precedentemente dichiarata ma non c'è a mio parere nessun motivo per cui dovesse essere chiamato lì quindi vi prego di aiutarmi a comprendere e a risolvere l'errore. Grazie in anticipo a tutti.

Vi allego il file Vector.h e main.cpp per il codice in formato .txt visto che supero il numero massimo di caratteri consentiti se posto qui il codice e non posso allegare file con estenzioni .cpp e .h.

Tanto per presentarmi... sono Andrea e programmo in C/C++, C#, Javascript (in combinazione con HTML & CSS), GDScript (nell'engine di Godot), Phyton e php da circa 1 anno e mezzo. Mi sono appassionato alla programmazione grazie alla scuola ma poi ho voluto approfondire vari linguaggi per conto mio smanettandoci un po' per ottenere risultati soddisfacenti. Il linguaggio che conosco meglio è proprio il C++ ed è anche quello che stimo di più anche se non condivido tutte le scelte del suo ideatore. Lavoro principalmente in Visual Studio 2019 della Miscrosoft e a volte nell'editor di Godot.

Grazie ancora di tutto e buona serata a tutti.
 

Allegati

Andrea477

Nuovo Utente
6 Dic 2019
3
0
1
Salve, sono nuovo del forum, oggi avevo bisogno di chiedere un aiuto alla vostra comunità per un problema che ho riscontrato nel riprodurre una classe Vector. Come dice il nome stesso questa sarà una classe template <class Type> class Vector che si comporterà similmente alla standard std::vector<...>. In realtà questo è solo una delle classi che ho intenzione di creare per una libreria che vorrei condividere una volta completa (non a scopi di lucro).
Il mio problema consiste in un'anomalia, probabilmente dovuta a qualche errore concettuale che non riesco a scovare, quando uguaglio due Vector<stesso tipo> nella funzione inline void operator=(const Vector<Type> value) {...}. Quando compilo non mi dà errori bensì inserisce un punto d'interruzione nel distruttore della classe. Ho fatto dei test per provare a capire quando viene effettivamente chiamato il distruttore ma come risultato ho notato che viene chiamato alla fine della funzione precedentemente dichiarata ma non c'è a mio parere nessun motivo per cui dovesse essere chiamato lì quindi vi prego di aiutarmi a comprendere e a risolvere l'errore. Grazie in anticipo a tutti.

Vi allego il file Vector.h e main.cpp per il codice in formato .txt visto che supero il numero massimo di caratteri consentiti se posto qui il codice e non posso allegare file con estenzioni .cpp e .h.

Tanto per presentarmi... sono Andrea e programmo in C/C++, C#, Javascript (in combinazione con HTML & CSS), GDScript (nell'engine di Godot), Phyton e php da circa 1 anno e mezzo. Mi sono appassionato alla programmazione grazie alla scuola ma poi ho voluto approfondire vari linguaggi per conto mio smanettandoci un po' per ottenere risultati soddisfacenti. Il linguaggio che conosco meglio è proprio il C++ ed è anche quello che stimo di più anche se non condivido tutte le scelte del suo ideatore. Lavoro principalmente in Visual Studio 2019 della Miscrosoft e a volte nell'editor di Godot.

Grazie ancora di tutto e buona serata a tutti.
Smanettando un po' e rileggendomi qualche manuale che spiegasse approfonditamente la questione dell'allocazione dinamica sono giunto a risolvere il mio problema creando una class Vector<Type> funzionante. Continuerò ad aggiornarla e soprattutto a migliorarla (se avete dei consigli da darmi ve ne sono grato e qualunque cambiamento apportiate al codice che vi allegherò in formato txt ripostatelo affinchè tutti possano usufluirne). Nel frattempo vi allego il codice.

Questa classe parte di un mio progetto chiamato Aloo (Advanced Language Objects Oriented) con il quale vorrei sperimentare la creazione di un semplice linguaggio di programmazione orientato agli oggetti ed ai calcoli matematici. Se voleste aiutarmi in questa impresa potete contattarmi in questo forum.
 

Allegati