EmaGuzzetti
Utente Attivo
- Messaggi
- 31
- Reazioni
- 1
- Punteggio
- 25
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
Applicazione.cpp
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?!?
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?!?