Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...
Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...
Топ:
Марксистская теория происхождения государства: По мнению Маркса и Энгельса, в основе развития общества, происходящих в нем изменений лежит...
Интересное:
Национальное богатство страны и его составляющие: для оценки элементов национального богатства используются...
Распространение рака на другие отдаленные от желудка органы: Характерных симптомов рака желудка не существует. Выраженные симптомы появляются, когда опухоль...
Что нужно делать при лейкемии: Прежде всего, необходимо выяснить, не страдаете ли вы каким-либо душевным недугом...
Дисциплины:
2022-10-05 | 36 |
5.00
из
|
Заказать работу |
Reference to a zero-sized array is illegal
Ссылку можно инициализировать только реально существующим объектом, массив нулевого размера в С++ быть не может. Объявление массива нулевого размера означает, что где-то в другом модуле существует массив не нулевого размера на который это объявление ссылается. Для того что бы образовать ссылку необходимо знать истинное объявление объекта.
typedef int ai[]; extern int eai[]; ai &rai1 = eai; int (&rai2)[] = eai;FEC00115 ERROR
Неверный деструктор '%s'
Illegal destructor '%s'
FEC00116 ERROR
Нельзя объявлять тип при задании типа возвращаемого значения функции
Cannot define type as a function result type
В С++ нельзя объявлять типы при задании аргументов или возвращаемого значения функций. В С такие объявления разрешены. Запрет связан с тем, что в С++ реализована именная эквивалентность типов, а в С структурная. Так как область действия такого объявления является областью действия парметров функции, то данное объявление не будет видно за пределами объявления функции. С.1.6 [diff.decl] #2
class A { } f(int a);FEC00117 ERROR
Синтаксическая ошибка в описании пространства имен
Syntax error in namespace definition
Не верный синтаксис объявления 'namespace'. После служебного слова 'namespace' должен идти необязательный идентификатор и открывающаяся фигурная скобка.
namespace class A {}FEC00118 ERROR
Неверная конструкция после операции '::'
Illegal syntax after '::'
Ошибочный синтаксис после оператора '::', после оператора '::' должно идти имя члена класса, пространства имен или глобального пространства имен. Проверьте синтаксис.
::int a;FEC00120 ERROR
Для вызова '%s' следует использовать операции '.' или '->'
use '.' or '->' to call to '%s'
Нестатическая Функция член вне контекста этого класса должна вызыватся с использоанием операции '.' или '->'. Измените способ вызова функции на использование операции '.' или '->'.
struct A { void operator +(A& a); }; class B { void g(A& a1, A& a2) { A::operator+(a1, a2); } };FEC00121 ERROR
Деление на ноль
Division by zero
При вычислении константных выражений произошло деление на ноль. Результат вычисления выражения содержащего деление на ноль не определен.
int a[10/0];FEC00123 ERROR
Нельзя сравнивать объекты типов '%s' и '%s'
Cannot compare objects of types '%s' and '%s'
Типы операндов в операции сравнения несравнимы, и между ними не существует операции неявного преобразования типа. Проверьте типы операндов и, если необходимо, вставьте явное преобразование типов.
bool f(void* pv, int i) { return pv i; }FEC00129 ERROR
Неверный тип условия в операторе '%s'
Illegal type in condition of '%s' statement
Недопустимый тип условия в операторе 'if', 'while', 'do', 'for' или 'switch'. Для операторов 'if', 'while', 'do' или 'for' условие должен иметь тип 'bool' или тип неявно преобразуемый к нему. Для оператора 'switch' типы условия должен иметь интегральный, перечислимый тип или тип неявно преобразуемый к первым двум. Проверьте тип условия в операторе и, если необходимо, вставьте явное преобразование типов.
void f(void* pv) { switch(pv) { case 0: return; } }FEC00130 ERROR
Нельзя инициализировать ссылку на неконстантный объект не-l-значением
Cannot initialize reference to non-constant with non l-value
Так как через неконстантнюу ссылку объект может быть изменен, то образовывать неконстантную ссылку на объект который нельзя изменять недопустимо. В случае если необходимо образовать ссылку на объект, который нельзя изменять, то необходимо образовать ссылку на константный объект.
void f(const int& cri) { int& ri = cri; }FEC00132 ERROR
Переход на '%s'
Jump to '%s'
FEC00134 ERROR
Невозможно изменить константное значение типа '%s' в операции '%s'
Cannot change constant value of type '%s' in '%s' operator
Значения объектов константного типа в пределах их области видимости не может быть изменено после инициализации. Однако константность может быть снята с помощью преобразования 'const_cast', смотрите описание.
const int c = 5; void f() { c++; }FEC00140 ERROR
Рассогласование типов в операции '%s' в константном выражении
Type mismatch for '%s' operator in constant expression
Битовые и логические операции определены только для интегральных типов. Проверьте типы операндов и, если необходимо, добавьте явное преобразование типов.
int f(int i, float f) { return f & i; }FEC00143 ERROR
Удаление объекта неполного типа '%s'
Delete object of incomplete type '%s'
По Стандарту поведение реализации в этом случае не определено. В связи с тем, что для объекты неполного типа не известно, есть ли у деструктор и доступен ли он, то генерируется ошибка. Поместите полное объявление типа объекта до его удаления с помощью оператора 'delete'.
class A; void f(A* pa) { delete pa; }FEC00145 ERROR
Инициализация '%s' агрегатом не допускается
Aggregate initializer for '%s' is not allowed
Переменные, имеющие не массивный или классовый тип, разрешается инициализировать только агрегатами с одним значением, наличие двух и более инициализирующих значений является ошибкой. Не инициализируйте простые переменные агрегатами.
int i = { 1, 2 };FEC00147 ERROR
Нельзя брать адрес битового поля '%s'
Cannot take an address of bit-field '%s'
Так как большинство процессоров не могут адресовать единичные биты в байте, то в С и С++ нельзя брать адрес битовых полей. Если необходимо брать адрес переменной, то сделайте ее минимального по размеру типа 'char'. В большинстве случаев следует избегать использования битовых полей.
struct S { int a: 3; int* f() { return &a; } };FEC00148 ERROR
В операции '%s' нельзя использовать операнды перечислимого типа '%s'
Cannot use '%s' operator for operand of type '%s'
В С++ операции '++' или '--' не определены для перечислимых типов, однако в С это разрешено. В С можно применять операции '++' или '--' для перечислимых типов потому, что в С перечислимый тип не вводит новый тип, перечисления рассматриваются как 'int' с именованными значениями. В С++ перечислимые типы рассматриваются как самостоятельные типы, для которых при необходимости можно перегружать различные операторы.
enum E { e }; void f(E ee) { ee++; }FEC00149 ERROR
В постфиксной операции '%s' операнд не является l-значением
Operand is not an lvalue in postfix '%s' operator
Операнд для постфиксной операции '++' или '--' не является l-значением, а постфиксные операции '++' или '--' применимы только для модифицируемых l-значений. Убедитесь, что операндом для постфиксной операции '++' или '--' является l-значение.
void f(int i) { (i + 1)++; }FEC00150 ERROR
Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...
Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...
История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...
Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!