|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Sep 2006
Messaggi: 311
|
[c++] funzione operator = non disponibile in system::collections::generic::list<T>
salve a tutti...premetto che io sono un programmatore di vb.net e c# e sto provando a passare al c++... sto usando però sempre le winforms e il .net framework 2.0 tramite visual studio 2008...
il mio problema è questo... devo creare una classe Applicazione che contiene 3 variabili... il tipo, il nome e una lista di stringhe...visto che al momento non ho trovato classi facili come le list (of ) di visual basic e comunque mi ero sempre trovato bene ho deciso di usarle anche qui.. questa è la classe che ho creato: Applicazione.h Codice PHP:
Applicazione.cpp Codice PHP:
solo che quando tento di assegnare a PathsA la variabile di tipo list(of) mi da il seguente errore: error C2582: funzione 'operator =' non disponibile in 'System::Collections::Generic::List<T>' e quando tento il return della classe mi da il seguente errore: error C3073: 'System::Collections::Generic::List<T>': la classe di riferimento non ha un costruttore di copia definito dall'utente come posso risolvere usando sempre la classe list(OF)? so che il c++ non elimina direttamente i dati ma bisogna rimuoverli tramite distruttore..ma non so come si implementa..potreste farmi un esempio? e infine, non c'è una classe del c++ simile e potente come le list(of) del .net framework? e come posso assegnare un valore nullo alle classi del .net framework?!? Ultima modifica di EmaGuzzetti : 02-08-2009 alle 21:41. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Sep 2006
Messaggi: 311
|
nessuno sa aiutarmi?
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Per prima cosa quello non è C++ ma C++/CLI, ovvero qualcosa che ha nel nome la scritta C++ ma che non lo è.
Comunque il tuo problema è che mancano le parentesi tonde: [code] PathsA= gcnew List<String^>(); [code] |
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Sep 2006
Messaggi: 311
|
Quote:
PathsA=Paths; credo sia dovuto che il c++ per il return crea una copia della variabile..e non avendo un costruttore di copia non sa come fare...solo che non so come farne una copia! |
|
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
A te manca tutte le volte che scrivi List<String^>, devi specificare che stai usando un riferimento e quindi List<String^>^. Inoltre i tipi riferimento usano l'operatore di selezione dei puntatori del vero C++ quindi non puoi scrivere PathA.Add(Path) ma PathA->Add(Path) Infine ti prego di non continuare a chiamare quell'affare C++ perchè non lo è. |
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Sep 2006
Messaggi: 311
|
grazie mille! sai anche come controllare che non sia null il valore dell'oggetto? naturalmente l'= a 0 non funziona per un oggetto del framework..e cmq scusa per averlo chiamato sempre c++ ma non sapevo che microsoft vs ha tentato di standardizzare il c++ a suo modo.. comunque oramai sto provando a non usare winforms...ma mi blocco qui:
http://www.hwupgrade.it/forum/showth...5#post28470205 puoi aiutarmi? Ultima modifica di EmaGuzzetti : 08-08-2009 alle 11:36. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:30.




















