Share via


Utilizzo del codice Visual C++ in Progettazione classi

Aggiornamento: novembre 2007

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.

Nelle precedenti versioni di Visual Studio, Progettazione classi supportava solo i linguaggi gestiti (Visual C# e Visual Basic). In Visual Studio 2008, Progettazione classi aggiunge un supporto limitato per il codice C++ nativo, utilizzabile soltanto per la visualizzazione e la documentazione.

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

  • Enumerazione

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

  • Typedef

Risoluzione dei problemi relativi al tipo e alla visualizzazione

Percorso 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 In Progettazione classi non è possibile visualizzare questo tipo. In tal caso, trascinare nuovamente il codice sorgente modificato o riposizionato nel diagramma classi per visualizzarlo nuovamente.

Problemi 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 Nessun tipo trovato nella selezione. 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.

Problemi 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 in Visual Studio (Visual Basic).

  • 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. Per ulteriori informazioni, vedere Riferimenti a spazi dei nomi e componenti.

  • 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.

L'errore più frequentemente visualizzato per un problema di risoluzione del tipo è Impossibile trovare il codice per una o più forme nel diagramma classi '<elemento>'. Per ulteriori informazioni vedere la descrizione di tale errore.

Risoluzione di messaggi di errore specifici

Per ulteriori informazioni sulla risoluzione di messaggi di errore specifici, vedere gli argomenti relativi agli errori in Messaggi di errore di 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 nidificati ma non le relazioni tra un tipo nidificato e altri tipi.

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

Vedere anche

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

Utilizzo dei diagrammi classi

Progettazione di classi e tipi

Messaggi di errore di Progettazione classi