Trabajar con código de Visual C++ en el Diseñador de clases

Actualización: noviembre 2007

El Diseñador de clases muestra una superficie de diseño visual denominada diagrama de clase que proporciona una representación visual de los elementos de código de su proyecto. Puede usar los diagramas de clase para diseñar y visualizar clases y otros tipos en un proyecto.

En versiones anteriores de Visual Studio, el Diseñador de clases admitía solamente los lenguajes administrados (Visual C# y Visual Basic). En Visual Studio 2008, el Diseñador de clases agrega compatibilidad limitada para código nativo de C++, cuyo uso está pensado solo para presentación y documentación.

El Diseñador de clases admite los elementos de código de C++ siguientes:

  • Clase (se asemeja a una forma de clase administrada, salvo que puede tener varias relaciones de herencia)

  • Clase anónima (muestra el nombre generado de la Vista de clases para el tipo anónimo)

  • Clase de plantilla

  • Estructura

  • Enumeración

  • Macro (muestra la vista de la macro posterior al proceso)

  • Definición de tipos

Solucionar problemas de resolución de tipo y de presentación

Ubicación de archivos de código fuente

El Diseñador de clases no realiza un seguimiento de la ubicación de los archivos de código fuente. Por lo tanto, si modifica la estructura del proyecto o mueve los archivos de código fuente del proyecto, el Diseñador de clases puede perder el control del tipo (sobre todo del tipo de origen de una definición de tipos, de las clases base o de los tipos de asociación). Podría recibir el error siguiente: El Diseñador de clases no puede mostrar este tipo. Si se da el caso, vuelva a arrastrar el código fuente modificado o cambiado de posición hasta el diagrama de clase para que vuelva a mostrarse.

Actualización y problemas de rendimiento

En los proyectos de Visual C++, un cambio en el archivo de código fuente podría tardar de 30 a 60 segundos en aparecer en el diagrama de clase. Este retraso también podría producir el error siguiente en el Diseñador de clases: No se encontraron tipos en la selección. Si recibe un error de este tipo, haga clic en Cancelar en el mensaje de error y espere a que el elemento de código aparezca en la Vista de clases. Tras ello, el Diseñador de clases debe poder mostrar el tipo.

Si un diagrama de clase no se actualiza con los cambios que ha realizado en el código, es posible que deba cerrar el diagrama y abrirlo de nuevo.

Problemas de resolución de tipo

Es posible que el Diseñador de clases no pueda resolver tipos por las razones siguientes:

  • El tipo está en un proyecto o ensamblado al que no se hace referencia desde el proyecto que contiene el diagrama de clase. Para corregir este error, agregue una referencia al proyecto o ensamblado que contiene el tipo. Para obtener más información, vea Cómo: Agregar o quitar referencias en Visual Studio (Visual Basic).

  • El tipo no está en el ámbito correcto, por lo que el Diseñador de clases no puede encontrarlo. Asegúrese de que no falta en el código una instrucción using, imports o #include. Asegúrese también de no haber movido el tipo (o un tipo relacionado) fuera del espacio de nombres donde estaba ubicado originalmente. Para obtener más información, vea Hacer referencia a espacios de nombres y componentes.

  • El tipo no existe (o se ha marcado como comentario). Para corregir este error, asegúrese de no haber eliminado ni marcado como comentario el tipo involuntariamente.

Este es el error más probable que aparecerá cuando surja un problema de resolución de tipo: No se pudo encontrar el código para una o varias formas en el diagrama de clase '<elemento>'. Para obtener más información, vea la descripción de ese error.

Solucionar problemas indicados en mensajes de error específicos

Para obtener más información sobre cómo solucionar problemas indicados en mensajes de error específicos, vea los temas sobre errores en Mensajes de error del Diseñador de clases.

Limitaciones para los elementos de código de C++

  • Cuando se carga un proyecto de Visual C++, el Diseñador de clases funciona en modo de sólo lectura. Puede cambiar el diagrama de clase, pero no puede guardar los cambios del diagrama de clase en el código fuente.

  • El Diseñador de clases solo admite semántica nativa de C++. En los proyectos de Visual C++ compilados en código administrado, el Diseñador de clases solo presentará elementos de código que sean tipos nativos. Por lo tanto, puede agregar un diagrama de clase a un proyecto, pero el Diseñador de clases no le permitirá ver los elementos cuya propiedad IsManaged esté establecida en true (es decir, tipos de valor y tipos de referencia).

  • En los proyectos de Visual C++, el Diseñador de clases solo lee la definición del tipo. Por ejemplo, suponga que define un tipo en un archivo de encabezado (.h) y que define sus miembros en un archivo de implementación (.cpp). Si llama a "Ver diagrama de clase" en el archivo de implementación (.cpp), el Diseñador de clases no mostrará nada. Otro ejemplo: si llama a "Ver diagrama de clase" en un archivo .cpp que usa una instrucción #include para incluir otros archivos pero no contiene ninguna definición de clase real, el Diseñador de clases tampoco mostrará nada.

  • Los archivos IDL (.idl), que definen interfaces COM y bibliotecas de tipos, no se muestran en diagramas a menos que estén compilados en código nativo de C++.

  • El Diseñador de clases no admite funciones y variables globales.

  • El Diseñador de clases no admite las uniones. Se trata de un tipo especial de clase en que la memoria asignada consta solo de la cantidad necesaria para el miembro de datos más grande de la unión.

  • El Diseñador de clases no muestra tipos de datos básicos como int y char.

  • El Diseñador de clases no muestra tipos definidos fuera del proyecto actual si el proyecto no tiene referencias correctas a esos tipos.

  • El Diseñador de clases puede mostrar tipos anidados pero no las relaciones entre un tipo anidado y otros tipos.

  • El Diseñador de clases no puede mostrar tipos que sean tipo void o que deriven de un tipo void.

Vea también

Conceptos

Clase de Visual C++ en el Diseñador de clases

Estructuras de Visual C++ en el Diseñador de clases

Enumeraciones de Visual C++ en el Diseñador de clases

Definiciones de tipos de Visual C++ en el Diseñador de clases

Otros recursos

Diseñar y ver clases y tipos

Trabajar con clases y otros tipos

Trabajar con diagramas de clase

Diseñar clases y tipos

Mensajes de error del Diseñador de clases