Condividi tramite


Utilizzo del codice Visual C++ (Progettazione classi)

Progettazione classi visualizza un'area di progettazione visiva denominata diagramma classi che fornisce una rappresentazione visiva degli elementi di codice nel progetto.È possibile utilizzare il diagrammi classi per progettare e visualizzare le classi e gli altri tipi in un progetto.

Progettazione classi supporta i seguenti elementi di codice C++:

  • Classe (simile a una forma di classe gestita, con la differenza che può avere relazioni di ereditarietà multiple)

  • Classe anonima (visualizza il nome generato da Visualizzazione classi per il tipo anonimo)

  • Classe modello

  • Struct

  • Enum

  • Macro (visualizza la prospettiva post-elaborata della macro)

  • Typedef

[!NOTA]

Ciò non corrisponde al diagramma classi UML, che è possibile creare in un progetto di modello.Per ulteriori informazioni, vedere Diagrammi classi UML: riferimento.

Risoluzione dei problemi relativi al tipo e alla visualizzazione

Bb385735.collapse_all(it-it,VS.110).gifPercorso dei file di origine

Progettazione classi non tiene traccia del percorso dei file di origine.Di conseguenza, se si modifica la struttura del progetto o vengono spostati file di origine nel progetto, Progettazione classi può perdere traccia del tipo (soprattutto il tipo di origine di un typedef, classi base o tipi di associazione)È possibile ricevere un messaggio di errore come questo Class Designer is unable to display this type.In tal caso, trascinare nuovamente il codice sorgente modificato o riposizionato nel diagramma classi per visualizzarlo nuovamente.

Bb385735.collapse_all(it-it,VS.110).gifProblemi di aggiornamento e di prestazioni

Per i progetti Visual C++, potrebbero essere necessari dai 30 ai 60 secondi perchè una modifica nel file di origine venga visualizzata nel diagramma classi.A causa di questo ritardo, Progettazione classi potrebbe generare il seguente errore No types were found in the selection.Se viene visualizzato un messaggio di errore come questo, scegliere Annulla nel messaggio di errore e attendere che l'elemento di codice venga visualizzato in Visualizzazione class.A questo punto, Progettazione classi dovrebbe essere in grado di visualizzare il tipo.

Se il diagramma di classi non viene aggiornato con le modifiche apportate nel codice, potrebbe essere necessario chiudere e quindi riaprire il diagramma.

Bb385735.collapse_all(it-it,VS.110).gifProblemi di risoluzione del tipo

Progettazione classi potrebbe non essere in grado di risolvere i tipi per le seguenti ragioni:

  • Il tipo è presente in un progetto o in un assembly a cui non viene fatto riferimento dal progetto che contiene il diagramma classi.Per correggere questo errore, aggiungere un riferimento al progetto o all'assembly che contiene il tipo.Per ulteriori informazioni, vedere Procedura: aggiungere o rimuovere riferimenti utilizzando la finestra di dialogo Aggiungi riferimento.

  • Il tipo non si trova nell'ambito corretto, di conseguenza Progettazione classi non è in gradi di trovarlo.Verificare che nel codice non manchi un’istruzione using, imports o #include.Assicurarsi inoltre che il tipo (o un tipo correlato) non sia stato spostato dallo spazio dei nomi in cui si trovava in origine.

  • Il tipo non esiste oppure è stato impostato come commento.Per correggere questo errore, assicurarsi di non aver inavvertitamente impostato il tipo come commento o di non averlo eliminato.

  • Il tipo si trova in una libreria a cui fa riferimento la direttiva #import.Una possibile soluzione alternativa consiste nell'aggiungere manualmente il codice generato (il file con estensione tlh) alla direttiva #include nel file di intestazione.

L'errore più frequentemente visualizzato per un problema di risoluzione del tipo è Code could not be found for one or more shapes in class diagram '<element>'.Questo messaggio di errore non indica necessariamente che il codice sia per errore.Indica solo che la progettazione classi non sia in grado di visualizzare il codice.Provare le misure seguenti.

  • Assicurarsi che il tipo esistente.Assicurarsi di non aver inavvertitamente impostato come commento o eliminato il codice sorgente.

  • Verificare che Progettazione classi supporta il tipo immessi.Vedere limitazioni per gli elementi di codice C++.

  • Provare a risolvere il tipo.Il tipo può essere in un progetto o un assembly a cui non fa riferimento il progetto contenente un diagramma classi.Per correggere questo errore, aggiungere un riferimento al progetto o all'assembly che contiene il tipo.Per ulteriori informazioni, vedere Procedura: aggiungere o rimuovere riferimenti utilizzando la finestra di dialogo Aggiungi riferimento.

  • Assicurarsi che il tipo sia nell'ambito corretto in modo che sia possibile individuarlo Progettazione classi.Assicurarsi che il codice non sia presente using, imports, l'istruzione o #include.Assicurarsi inoltre che il tipo (o un tipo correlato) non sia stato spostato dallo spazio dei nomi in cui si trovava in origine.

Bb385735.collapse_all(it-it,VS.110).gifRisoluzione degli altri messaggi di errore

È possibile trovare assistenza per la risoluzione dei problemi relativi a errori e avvisi nei forum pubblici MSDN (Microsoft Developer Network).Vedere forum di Visual Studio Progettazione classi.

Limitazioni per gli elementi di codice C++

  • Quando viene caricato un progetto Visual C++, Progettazione classi funziona in modalità di sola lettura.È possibile modificare il diagramma classi, ma non è possibile salvare modifiche dal diagramma classi nel codice sorgente.

  • Progettazione classi supporta solo semantica C++ nativa.Per progetti Visual C++ compilati in codice gestito, Progettazione classi visualizzerà solo elementi di codice che sono tipi nativi.Di conseguenza, è possibile aggiungere un diagramma classi ad un progetto, ma Progettazione classi non consentirà di visualizzare elementi nei quali la proprietà IsManaged è impostata su true (ovvero, tipi di valore e tipi di riferimento).

  • Per progetti Visual C++, Progettazione classi legge soltanto la definizione del tipo.Ad esempio, si supponga che venga definito un tipo in un file di intestazione (.h) e i relativi membri in un file di implementazione (.cpp).Se si richiama "Visualizza diagramma classi" sul file di implementazione (.cpp), Progettazione classi non visualizzerà niente.Considerando un altro esempio, se si richiama "Visualizza diagramma classi" su un file .cpp che utilizza l'istruzione #include per includere gli altri file ma non contiene definizioni della classe effettiva, Progettazione classi analogamente non visualizzerà niente.

  • I file IDL (.idl), che definiscono le interfacce COM e le librerie dei tipi, non vengono visualizzati nei diagrammi a meno che non siano compilati in codice C++ nativo.

  • Progettazione classi non supporta funzioni globali e variabili.

  • Progettazione classi non supporta unioni.Si tratta di un tipo speciale di classe in cui la memoria allocata è solo la quantità necessaria per il membro dati più grande dell'unione.

  • Progettazione classi non visualizza tipi di dati di base come ad esempio int e char.

  • Progettazione classi non visualizza tipi definiti all'esterno del progetto corrente se il progetto non ha riferimenti corretti a tali tipi.

  • Progettazione classi visualizza i tipi annidati ma non le relazioni tra un tipo annidato e altri tipi.

  • Progettazione classi non può visualizzare tipi void o che derivano da un tipo void.

Vedere anche

Attività

Informazioni aggiuntive sugli errori di Progettazione classi

Concetti

Classi Visual C++ in Progettazione classi

Strutture Visual C++ in Progettazione classi

Enumerazioni Visual C++ in Progettazione classi

Typedef di Visual C++ in Progettazione classi

Altre risorse

Progettazione e visualizzazione di classi e tipi

Utilizzo di classi e altri tipi (Progettazione classi)

Utilizzo dei diagrammi classi (Progettazione classi)

Progettazione di classi e tipi (Progettazione classi)