Compartir a través de


Errores del compilador de C2500 a C2599

En los artículos de esta sección de la documentación se explican un subconjunto de los mensajes de error generados por el compilador.

Importante

Las herramientas de compilación y los compiladores de Visual Studio pueden notificar muchas clases de errores y advertencias. Después de encontrar un error o una advertencia, las herramientas de compilación pueden realizar suposiciones sobre la intención del código e intentar continuar, por lo que pueden notificar más problemas al mismo tiempo. Si las herramientas hacen una suposición incorrecta, es posible que los errores o advertencias posteriores no se apliquen al proyecto. Cuando corrija problemas en el proyecto, empiece siempre por el primer error o advertencia notificados y recompile a menudo. Una corrección puede hacer que desaparezcan muchos errores posteriores.

Para obtener ayuda con un mensaje de diagnóstico concreto en Visual Studio, seleccione la ventana Salida y pulse la tecla F1. Visual Studio abre la página de documentación para ese error, si existe. También puede usar la herramienta de búsqueda en la parte superior de la página para buscar artículos sobre advertencias o errores específicos. O bien examine la lista de errores y advertencias por herramienta y escriba en la tabla de contenido de esa página.

Nota:

No se documentan todos los errores o advertencias de Visual Studio. En muchos casos, el mensaje de diagnóstico proporciona toda la información disponible. Si ha llegado a esta página cuando ha usado F1 y cree que el mensaje de error o advertencia necesita una explicación adicional, háganoslo saber. Puede usar los botones de comentarios de esta página para notificar un problema de documentación en GitHub. Si cree que el error o la advertencia son incorrectos o ha encontrado otro problema con el conjunto de herramientas, notifique un problema de producto en el sitio de Developer Community. También puede enviar comentarios y notificar errores en el IDE. En Visual Studio, vaya a la barra de menús y seleccione Ayuda > Enviar comentarios > Notificar un problema, o bien envíe una sugerencia desde Ayuda > Enviar comentarios > Enviar una sugerencia. Se han creado algunos temas de error del compilador que el compilador no emite y ahora se redirigen a esta página, alternativamente.

Puede encontrar ayuda adicional sobre errores y advertencias en los foros de Preguntas y respuestas de Microsoft Learn. O bien busque el número de error o advertencia en el sitio de Developer Community de Visual Studio C++. También puede buscar soluciones en Stack Overflow.

Para obtener vínculos a ayuda adicional y recursos de la comunidad, consulte Ayuda y comunidad de Visual C++.

Mensajes de error

Error Mensaje
Error del compilador C2500 "identifier1": "identifier2" ya es una clase base directa
Error del compilador C2501 "identifier": "__declspec(specifier)" solamente se puede aplicar a estructuras, uniones, clases o miembros de campo de bits sin signo
Error del compilador C2502 "identifier": hay demasiados modificadores de acceso en la clase base
Error del compilador C2503 "class": las clases base no pueden contener matrices de tamaño cero
Error del compilador C2504 "class": clase base sin definir
Error del compilador C2505 "symbol": "__declspec(specifier)" solamente se puede aplicar a declaraciones o definiciones de objetos globales o miembros de datos estáticos
Error del compilador C2506 "member": "__declspec(specifier)" no se puede aplicar a este símbolo
Error del compilador C2507 "identifier": hay demasiados modificadores virtuales en la clase base
Error del compilador C2508 "identifier": "__declspec(specifier1)" no se puede combinar con "__declspec(specifier2)"
Error del compilador C2509 "identifier": función miembro no declarada en "class"
Error del compilador C2510 "identifier": el lado izquierdo de "::" debe ser una clase, una estructura o una unión
Error del compilador C2511 "identifier": la función miembro sobrecargada no se ha encontrado en "class"
Error del compilador C2512 "identifier": no hay disponible un constructor predeterminado adecuado
Error del compilador C2513 "*type": ninguna variable declarada antes de "="
Error del compilador C2514 "class": la clase no tiene constructores
Error del compilador C2515 "identifier": "vtguard" solamente se puede aplicar a definiciones o declaraciones de clase
Error del compilador C2516 "class": no es una clase base válida
Error del compilador C2517 "identifier": el lado derecho de "::" no está definido
Error del compilador C2518 la palabra clave "keyword" no es válida en la lista de clases base; se ha omitido
Error del compilador C2519 "identifier": los atributos de WinRT solo pueden contener campos públicos
Error del compilador C2520 "class": no hay ningún constructor no explícito disponible para la conversión implícita
Error del compilador C2521 un destructor o finalizador no acepta ningún argumento
Error del compilador C2522 "identifier": no se puede usar el identificador de sobrecarga en "identifier1", puesto que ya se ha especificado en "identifier2"
Error del compilador C2523 "class::~identifier": falta de coincidencia de la etiqueta de destructor o finalizador
Error del compilador C2524 "identifier":un destructor o finalizador debe tener una lista de parámetros "void"
Error del compilador C2525 "identifier": el parámetro "identifier1" se denomina "identifier2" en la función base y debe coincidir con una implementación publicada
Error del compilador C2526 "identifier1": la función de vinculación de C no puede devolver la clase "identifier2" de C++
Error del compilador C2527 "identifier": DefaultOverload no se puede especificar en "function1" ni "function2". Quite una especificación o cambie el nombre de la función durante la implementación
Error del compilador C2528 "identifier": el puntero a la referencia no es válido
Error del compilador C2529 "identifier": la referencia a la referencia no es válida
Error del compilador C2530 "identifier": se deben inicializar las referencias
Error del compilador C2531 "identifier": referencia no válida a un campo de bits
Error del compilador C2532 "identifier": modificador para la referencia no válido
Error del compilador C2533 "identifier": los constructores no permiten un tipo de valor devuelto
Error del compilador C2534 "identifier": el constructor no puede devolver un valor
Error del compilador C2535 "identifier": función miembro ya definida o declarada
Error del compilador C2536 Obsoleto.
Error del compilador C2537 "specifier": especificación de vinculación no válida
Error del compilador C2538 Obsoleto.
Error del compilador C2539 Obsoleto.
Error del compilador C2540 expresión no constante como límite de matriz
Error del compilador C2541 "identifier": no se pueden eliminar objetos que no sean punteros
Error del compilador C2542 "identifier": el objeto de clase no tiene constructor para la inicialización
Error del compilador C2543 se esperaba "]" para el operador "[]"
Error del compilador C2544 se esperaba ')' para el operador '()'
Error del compilador C2545 "operator": no se ha podido encontrar el operador sobrecargado
Error del compilador C2546 "identifier": cuando un tipo se define tanto en un ensamblado de interoperabilidad primario como en otro no primario, se debe hacer referencia al primario en primer lugar
Error del compilador C2547 "identifier": todos los parámetros de un método publicado se deben designar explícitamente en la declaración
Error del compilador C2548 "function": falta el parámetro predeterminado para parameter
Error del compilador C2549 la conversión definida por el usuario no puede especificar un tipo de valor devuelto
Error del compilador C2550 "identifier": las listas de inicializadores de constructor solo se permiten en las definiciones de constructor
Error del compilador C2551 El tipo 'void *' necesita conversión explícita
Error del compilador C2552 "identifier": los no agregados no se pueden inicializar con la lista de inicializadores
Error del compilador C2553 "typederived_class::function": la invalidación del tipo de valor devuelto de la función virtual difiere de "type base_class::function"
Error del compilador C2555 "derived_class::function": invalidar el tipo de valor devuelto de la función virtual difiere y no es covariante de "base_class::function"
Error del compilador C2556 "type1 class::function": la función sobrecargada solo difiere según el tipo devuelto de "type2 class::function"
Error del compilador C2557 "identifier": los miembros privados y protegidos no se pueden inicializar sin un constructor.
Error del compilador C2558 clase "class": no hay un constructor de copias disponible o este se ha declarado como "explicit"
Error del compilador C2559 "identifier": no se puede sobrecargar una función miembro que no tiene un calificador de referencia con una función miembro que tiene un calificador de referencia
Error del compilador C2560 "identifier": no se puede sobrecargar una función miembro que tiene un calificador de referencia con una función miembro que no tiene un calificador de referencia
Error del compilador C2561 "function": la función debe devolver un valor
Error del compilador C2562 "function": función "void" que devuelve un valor
Error del compilador C2563 hay un error de coincidencia en la lista de parámetros formales
Error del compilador C2564 Obsoleto.
Error del compilador C2565 "identifier": calificador de referencia no válido para constructores o destructores
Error del compilador C2566 función sobrecargada en expresión condicional
Error del compilador C2567 no se pueden abrir los metadatos en "filename", possible_reason
Error del compilador C2568 "identifier": no se puede resolver la sobrecarga de funciones
Error del compilador C2569 "identifier": una enumeración o una unión no se pueden utilizar como clase base
Error del compilador C2570 "identifier": la unión no puede tener clases base
Error del compilador C2571 "identifier": la función virtual no puede estar en la unión "union"
Error del compilador C2572 "function": nueva definición del argumento predeterminado: parámetro number
Error del compilador C2573 "clase": no se pueden eliminar punteros a objetos de este tipo; la clase no tiene ninguna sobrecarga no ubicada para "operador delete". Use ::delete o agregue "operator delete(void*)" a la clase
Error del compilador C2574 "destructor": los no se puede declarar estático
Error del compilador C2575 "identifier": solo las funciones miembro y las bases pueden ser virtuales
Error del compilador C2576 "identifier": no puede introducir un nuevo método virtual como "public". Considere la posibilidad de convertir el método en no virtual o cambiar la accesibilidad a "interna" o "privada protegida".
Error del compilador C2577 "identifier": un destructor o finalizador no puede tener un tipo de valor devuelto
Error del compilador C2578 "class": el tipo no puede tener un constructor "protegido" o "público protegido"
Error del compilador C2579 no se puede resolver el tipo type (offset). Se espera en filename
Error del compilador C2580 "identifier": no se admiten varias versiones de una función miembro especial con valor predeterminado.
Error del compilador C2581 "type": la función estática "operator =" no es válida
Error del compilador C2582 La función "operator operator" no está disponible en "type"
Error del compilador C2583 "identifier": el puntero "const/volatile" "this" no es válido para constructores o destructores
Error del compilador C2584 "class": la base directa "base_class2" no es accesible; ya es una base de "base_class1"
Error del compilador C2585 la conversión explícita a "type" es ambigua
Error del compilador C2586 sintaxis de conversión definida por el usuario incorrecta: direccionamientos indirectos no válidos
Error del compilador C2587 "identifier": uso no válido de la variable local como parámetro predeterminado
Error del compilador C2588 "::~identifier": destructor o finalizador global no válido
Error del compilador C2589 "identifier": token no válido en el lado derecho de "::"
Error del compilador C2590 "identifier": solo un constructor puede tener una lista de inicializadores de base o miembro
Error del compilador C2591 ExclusiveTo no puede usar "type" como argumento. Solo "ref class" es un argumento válido
Error del compilador C2592 "class": "base_class2" se hereda de "base_class_1" y no se puede volver a especificar
Error del compilador C2593 "operator identifier" es ambiguo
Error del compilador C2594 "operator": conversiones ambiguas de "type1" a "type2"
Error del compilador C2595 "identifier": Un tipo de atributo de WinRT debe estar sellado
Error del compilador C2596 "identifier": Un campo de atributo de WinRT solo puede ser "public enum class", "int", "unsigned int", "bool", "Platform::Type", "Platform::String" o "Windows::Foundation::HResult"
Error del compilador C2597 referencia no válida al miembro no estático "identifier"
Error del compilador C2598 la especificación de vinculación debe estar en el ámbito global
Error del compilador C2599 "identifier": no se permite la declaración adelantada de una enumeración de WinRT o administrada

Consulte también

Advertencias y errores de las herramientas de compilación y del compilador de C/C++
Errores del compilador de C2000 a C3999 y de C7000 a C7999