Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [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:
    #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 ^);
        
    StringgetNome();
        
    void setNome(String^);
        
    StringgetTipo();
        
    void setTipo(String^);
        List<
    String^> getPaths();
        
    void setPaths(List<String^>);
        
    StringgetPath();
        
    virtual ~Applicazione(void);
    protected:
        
    StringNomeA
        List<
    String^> PathsA;
        
    StringTipoA;
    }; 
    Applicazione.cpp

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

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

    Applicazione::Applicazione (StringNomeStringTipo)
    {
        
    NomeA=Nome;
        
    TipoA=Tipo;
    }

    Applicazione::Applicazione (StringTipo)
    {
        
    TipoA=Tipo;
    }

    Applicazione::~Applicazione(void)
    {
    }

    StringApplicazione::getNome(){
        return 
    NomeA;
    }
    void Applicazione::setNome(StringNome){
        
    NomeA=Nome;
    }

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

    StringApplicazione::getTipo(){
        return 
    TipoA;
    }
    void Applicazione::setTipo(StringTipo){
        
    TipoA=Tipo;
    }

    StringApplicazione::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?

  2. #2
    un'altra domanda.. come posso assegnare un valore nullo alle classi del .net framework come le liste?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.