[c++]funzione operator = non dispONIB in system::collections::generic::List

EmaGuzzetti

Utente Attivo
31
1
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

PHP:
#pragma once 
using namespace System; 
using namespace System::Collections::Generic; 
ref class Applicazione 
{ 
public: 
    Applicazione(String ^, List<String^>, String^); 
    Applicazione(String ^, String^, String^); 
    Applicazione(String ^, String^); 
    Applicazione(String ^); 
    String^ getNome(); 
    void setNome(String^); 
    String^ getTipo(); 
    void setTipo(String^); 
    List<String^> getPaths(); 
    void setPaths(List<String^> ); 
    String^ getPath(); 
    virtual ~Applicazione(void); 
protected: 
    String^ NomeA; 
    List<String^> PathsA; 
    String^ TipoA; 
};


Applicazione.cpp

PHP:
#include "StdAfx.h" 
#include "Applicazione.h" 
using namespace System; 
using namespace System::Collections::Generic; 
Applicazione::Applicazione(String^ Nome, List<String^> Paths, String^ Tipo) 
{ 
    NomeA=Nome; 
    TipoA=Tipo; 
    PathsA= 
        Paths; 
} 

Applicazione::Applicazione (String^ Nome, String^ Path, String^ Tipo) 
{ 
    NomeA=Nome; 
    TipoA=Tipo; 
    PathsA= gcnew List<String^>; 
    PathsA.Add(Path); 
} 

Applicazione::Applicazione (String^ Nome, String^ Tipo) 
{ 
    NomeA=Nome; 
    TipoA=Tipo; 
} 

Applicazione::Applicazione (String^ Tipo) 
{ 
    TipoA=Tipo; 
} 

Applicazione::~Applicazione(void) 
{ 
} 

String^ Applicazione::getNome(){ 
    return NomeA; 
} 
void Applicazione::setNome(String^ Nome){ 
    NomeA=Nome; 
} 

List<String^> Applicazione::getPaths(){ 
     
    return PathsA; 
} 
void Applicazione::setPaths(List<String^> Paths){ 
    PathsA=Paths; 
} 

String^ Applicazione::getTipo(){ 
    return TipoA; 
} 
void Applicazione::setTipo(String^ Tipo){ 
    TipoA=Tipo; 
} 

String^ Applicazione::getPath(){ 
    return PathsA[0]; 
}


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?!?
 

Ci sono discussioni simili a riguardo, dai un'occhiata!

Entra

oppure Accedi utilizzando

Discussioni Simili