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.
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.