Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
В статьях в этом разделе документации объясняется подмножество сообщений об ошибках, создаваемых компилятором.
Внимание
Компиляторы и средства сборки Visual Studio могут сообщать о многих типах ошибок и предупреждений. После обнаружения ошибки или предупреждения средства сборки могут делать предположения о намерении кода и пытаться продолжить работу, чтобы в одно и то же время сообщалось больше проблем. Если средства делают неверное предположение, последующие ошибки или предупреждения не могут применяться к проекту. При устранении проблем в проекте всегда начинайте с первой зарегистрированной ошибки (или предупреждения) и выполняйте повторную сборку как можно чаще. Одно исправление может устранить несколько последующих ошибок.
Чтобы получить справку по определенному диагностическом сообщению в Visual Studio, выберите его в окне вывода и нажмите клавишу F1 . Visual Studio открывает страницу документации для этой ошибки, если она существует. Вы также можете использовать средство поиска в верхней части страницы, чтобы найти статьи об определенных ошибках или предупреждениях. Или просмотрите список ошибок и предупреждений по инструменту и введите оглавление на этой странице.
Примечание.
Не все ошибки или предупреждения Visual Studio документируются. Во многих случаях диагностическое сообщение предоставляет все доступные сведения. Если вы приземлились на этой странице и думаете, что сообщение об ошибке или предупреждении требует дополнительного объяснения, сообщите нам, используя кнопки обратной связи на этой странице. Если вы считаете, что ошибка или предупреждение неправильно, или вы нашли другую проблему с набором инструментов, сообщите о проблеме продукта на сайте Сообщество разработчиков. Вы также можете отправлять отзывы и вводить ошибки в интегрированной среде разработки. В Visual Studio перейдите в строку меню и выберите Справка > Отправить отзыв > Сообщить о проблемеили отправить предложение с помощью Справка > Отправить отзыв > Предложить функцию. Некоторые разделы об ошибках компилятора были созданы, которые не создаются компилятором и теперь перенаправляются на эту страницу.
Вы можете найти дополнительную помощь по ошибкам и предупреждениям на форумах Microsoft Q&A C++. Или найдите номер ошибки или предупреждения на сайте Сообщество разработчиков Visual Studio C++. Вы также можете искать решения в стеке Overflow .
Ссылки на дополнительные справочные материалы и ресурсы сообщества см. в разделе справки и сообщества Visual C++.
Сообщения об ошибках
| Ошибка | Сообщение |
|---|---|
| Ошибка компилятора C2500 | "identifier1": "identifier2" уже является прямым базовым классом |
| Ошибка компилятора C2501 | "идентификатор": "__declspec(описатель)" может применяться только к структуры, объединениям, классам или незначимым элементам битового поля |
| Ошибка компилятора C2502 | "идентификатор": слишком много модификаторов доступа в базовом классе |
| Ошибка компилятора C2503 | "class": базовые классы не могут содержать массивы нулевого размера |
| Ошибка компилятора C2504 | "class": базовый класс не определен |
| Ошибка компилятора C2505 | "symbol": "__declspec(описатель)" может применяться только к объявлениям или определениям глобальных объектов или статических элементов данных. |
| Ошибка компилятора C2506 | "member": "__declspec(описатель)" нельзя применить к этому символу |
| Ошибка компилятора C2507 | "identifier": слишком много виртуальных модификаторов в базовом классе |
| Ошибка компилятора C2508 | "идентификатор": "__declspec(описатель1)" нельзя объединить с "__declspec(описатель2)" |
| Ошибка компилятора C2509 | "идентификатор": функция-член, не объявленная в классе |
| Ошибка компилятора C2510 | "идентификатор": слева от "::" должен быть классом/структурой/объединением |
| Ошибка компилятора C2511 | "идентификатор": перегруженная функция-член не найдена в классе |
| Ошибка компилятора C2512 | "identifier": нет подходящего конструктора по умолчанию |
| Ошибка компилятора C2513 | '*type': переменная не объявлена до '=' |
| Ошибка компилятора C2514 | Class: класс не имеет конструкторов |
| Ошибка компилятора C2515 | "identifier": "vtguard" может применяться только к объявлениям классов или определениям |
| Ошибка компилятора C2516 | "class": не является юридическим базовым классом |
| Ошибка компилятора C2517 | "идентификатор": право "::" не определено |
| Ошибка компилятора C2518 | ключевое 'ключевое слово' недопустимо в списке базовых классов; ожидаемое class имя |
| Ошибка компилятора C2519 | "идентификатор": атрибуты WinRT могут содержать только открытые поля |
| Ошибка компилятора C2520 | Class: неявный конструктор недоступен для неявного преобразования |
| Ошибка компилятора C2521 | Деструктор или метод завершения не принимает аргументы |
| Ошибка компилятора C2522 | "идентификатор": идентификатор перегрузки нельзя использовать для "identifier1", так как он уже указан в идентификаторе2. |
| Ошибка компилятора C2523 | "class::~identifier": несоответствие тега деструктора/завершения |
| Ошибка компилятора C2524 | "идентификатор": деструктор или метод завершения должен иметь список параметров void |
| Ошибка компилятора C2525 | "identifier": параметр "identifier1" имеет имя "identifier2" в базовой функции и должен соответствовать в опубликованной реализации. |
| Ошибка компилятора C2526 | "identifier1": функция компоновки C не может возвращать класс C++ "identifier2" |
| Ошибка компилятора C2527 | "идентификатор": DefaultOverload нельзя указать как в function1, так и в function2. Удаление одной спецификации или переименование функции во время реализации |
| Ошибка компилятора C2528 | "идентификатор": указатель на ссылку является незаконным |
| Ошибка компилятора C2529 | "идентификатор": ссылка на ссылку является незаконной |
| Ошибка компилятора C2530 | "идентификатор": ссылки должны быть инициализированы |
| Ошибка компилятора C2531 | "идентификатор": ссылка на битовое поле незаконно |
| Ошибка компилятора C2532 | "идентификатор": недопустимый модификатор для ссылки |
| Ошибка компилятора C2533 | "идентификатор": конструкторы не допускают возвращаемый тип |
| Ошибка компилятора C2534 | "identifier": конструктор не может возвращать значение |
| Ошибка компилятора C2535 | "идентификатор": функция-член уже определена или объявлена |
| Ошибка компилятора C2536 | Является устаревшей. |
| Ошибка компилятора C2537 | "описатель": спецификация незаконной компоновки |
| Ошибка компилятора C2538 | Является устаревшей. |
| Ошибка компилятора C2539 | Является устаревшей. |
| Ошибка компилятора C2540 | неконстантное выражение как привязанное к массиву |
| Ошибка компилятора C2541 | "идентификатор": не удается удалить объекты, которые не являются указателями |
| Ошибка компилятора C2542 | "идентификатор": объект класса не имеет конструктора для инициализации |
| Ошибка компилятора C2543 | ожидаемое "]" для оператора "[]" |
| Ошибка компилятора C2544 | ожидаемое ")" для оператора "()" |
| Ошибка компилятора C2545 | Оператор: не удается найти перегруженный оператор |
| Ошибка компилятора C2546 | "идентификатор": если тип определен как в PIA, так и в no-PIA, необходимо сначала ссылаться на PIA. |
| Ошибка компилятора C2547 | "идентификатор": все параметры опубликованного метода должны быть явно названы в объявлении |
| Ошибка компилятора C2548 | "function": отсутствует аргумент по умолчанию для параметра параметра |
| Ошибка компилятора C2549 | Определяемое пользователем преобразование не может указать тип возвращаемого значения |
| Ошибка компилятора C2550 | "identifier": списки инициализатора конструктора разрешены только в определениях конструктора |
| Ошибка компилятора C2551 | для типа "void *" требуется явное приведение |
| Ошибка компилятора C2552 | "идентификатор": не агрегированные выражения не могут быть инициализированы со списком инициализатора |
| Ошибка компилятора C2553 | Type derived_class::function: переопределение типа возвращаемой функции отличается от типа type base_class::function. |
| Ошибка компилятора C2554 | "переменная": "constinit" допускается только в объявлении переменной с длительностью статического или потокового хранилища |
| Ошибка компилятора C2555 | "derived_class::function": переопределение типа возврата виртуальной функции отличается и не является ковариантным от "base_class::function" |
| Ошибка компилятора C2556 | Function1: перегруженная функция отличается только по типу возвращаемого значения от function2. |
| Ошибка компилятора C2557 | "идентификатор": закрытые и защищенные элементы не могут быть инициализированы без конструктора |
| Ошибка компилятора C2558 | класс "class": конструктор копирования недоступен или конструктор копирования объявлен "явным" |
| Ошибка компилятора C2559 | "identifier": не может перегружать функцию-член без квалификатора ref-qualifier с функцией-членом с квалификатором ref-qualifier |
| Ошибка компилятора C2560 | "identifier": не может перегрузить функцию-член с квалификатором ref-qualifier с функцией-членом без квалификатора ref-qualifier |
| Ошибка компилятора C2561 | Function: функция должна возвращать значение |
| Ошибка компилятора C2562 | Функция "function": "void", возвращающая значение |
| Ошибка компилятора C2563 | Несоответствие в списке формальных параметров |
| Ошибка компилятора C2564 | Является устаревшей. |
| Ошибка компилятора C2565 | "identifier": квалификатор ref-qualifier является незаконным для конструкторов или деструкторов |
| Ошибка компилятора C2566 | перегруженная функция в условном выражении |
| Ошибка компилятора C2567 | не удается открыть метаданные в файле filename, possible_reason |
| Ошибка компилятора C2568 | "идентификатор": не удается разрешить перегрузку функции |
| Ошибка компилятора C2569 | "идентификатор": перечисление или объединение не может использоваться в качестве базового класса |
| Ошибка компилятора C2570 | "идентификатор": объединение не может иметь базовые классы |
| Ошибка компилятора C2571 | "идентификатор": виртуальная функция не может находиться в союзе "union" |
| Ошибка компилятора C2572 | "function": переопределение аргумента по умолчанию: номер параметра |
| Ошибка компилятора C2573 | "class": не удается удалить указатели на объекты этого типа; класс не имеет перегрузки размещения для "удаления оператора". Используйте ::d elete или добавьте оператор delete(void*)" в класс |
| Ошибка компилятора C2574 | "function": не может быть объявлен статическим |
| Ошибка компилятора C2575 | "идентификатор": только функции-члены и базы могут быть виртуальными |
| Ошибка компилятора C2576 | "идентификатор": не может ввести новый виртуальный метод как "public". Попробуйте сделать метод не виртуальным или изменить специальные возможности на "внутренний" или "защищенный частный" |
| Ошибка компилятора C2577 | "идентификатор": деструктор или метод завершения не может иметь возвращаемый тип |
| Ошибка компилятора C2578 | Class: тип не может иметь конструктор "защищенный" или "защищенный общедоступный" |
| Ошибка компилятора C2579 | не удается разрешить тип типа (смещение). Ожидается в имени файла |
| Ошибка компилятора C2580 | "идентификатор": несколько версий стандартных специальных функций-членов не допускаются |
| Ошибка компилятора C2581 | "type": статическое "оператор =" является незаконной функцией |
| Ошибка компилятора C2582 | Функция оператора оператора недоступна в типе |
| Ошибка компилятора C2583 | "идентификатор": "const/volatile" указатель "this" недопустим для конструкторов и деструкторов" |
| Ошибка компилятора C2584 | "class": прямой базовый "base_class2" недоступен; уже база "base_class1" |
| Ошибка компилятора C2585 | явное преобразование в тип неоднозначно |
| Ошибка компилятора C2586 | неправильный синтаксис преобразования, определяемый пользователем: незаконные косвенные |
| Ошибка компилятора C2587 | "идентификатор": незаконное использование локальной переменной в качестве параметра по умолчанию |
| Ошибка компилятора C2588 | '::~identifier': незаконный глобальный деструктор/метод завершения |
| Ошибка компилятора C2589 | "идентификатор": недопустимый маркер справа от "::" |
| Ошибка компилятора C2590 | "идентификатор": только конструктор может иметь список инициализатора базового или члена |
| Ошибка компилятора C2591 | ExclusiveTo не может использовать "type" в качестве аргумента. Допустимым аргументом является только класс ref. |
| Ошибка компилятора C2592 | "class": "base_class2" наследуется от "base_class1" и не может быть перенаследован |
| Ошибка компилятора C2593 | "идентификатор оператора" неоднозначно |
| Ошибка компилятора C2594 | "operator": неоднозначные преобразования из "type1" в "type2" |
| Ошибка компилятора C2595 | Тип атрибута WinRT "идентификатор" должен быть запечатан |
| Ошибка компилятора C2596 | Поле атрибута WinRT "идентификатор" может быть только "общедоступным классом перечисления", "int", "unsigned int", "bool", "Platform::Type", "Platform::String" или "Windows::Foundation::HResult" |
| Ошибка компилятора C2597 | недопустимая ссылка на нестатический элемент "идентификатор" |
| Ошибка компилятора C2598 | Спецификация компоновки должна находиться в глобальной области |
| Ошибка компилятора C2599 | "идентификатор": объявление пересылки управляемой или winRT перечисления не допускается |
См. также
Компилятор C/C++ и средства сборки ошибок и предупреждений
Ошибки компилятора C2000 — C3999, C7000 — C7999