OpenSCADAWiki:
Roman Savochenko
/
C Short All
/
part1
/part6
...
Home
|
Index
|
Changes
|
Comments
|
Users
|
Registration
|
Login
:
Password:
====1.6 Операторы==== =====1.6.1 C===== **break** Прекращает выполнение ближайшего внешнего оператора: do, for, switch или while. %%(php)for(;;) { printf("TEST"); break; }%% **case** Оценивает <выражение> и выполняет любое утверждение, связанное с <постоянной-выражением>. Если не имеется никакого соответствия с постоянным выражением, то выполняется связанное с заданным по умолчанию ключевым словом. Если заданное по умолчанию ключевое слово не используется, управление переходит к утверждению после блока переключателя. %%(php)switch(i) { case 1: printf "Val 1"; break; case 2: printf "Val 2"; break; default: printf "Other"; }%% **continue** Передает управление в начало оператора цикла do, for, или while вызывая следующую итерацию. %%(php)for(i=0;i<2;i++){printf("test"); continue; exit(1);}%% **default** Используется в switch для выполнения действий неудовлетворяющим ни одному условию. **do** //do оператор while(выражение);// Выполняет <оператор>, пока <выражение> истинно. Условие проверяется в конце цикла. **else** //if (выражение) выражение1; [else выражение2;]// Выполняет <выражение2> если <выражение> не истинно. **for** //for(init-expr; cond-expr; increment) оператор;// Выполняет <оператор>, пока инициализированное число <init-expr>, над которым производится операция <increment>, удовлетворяет условному выражению <cond-expr>. **goto** Оператор безусловного перехода. Управления передается на оператор с меткой <имя:>. **if** //if (выражение) выражение1; [else выражение2;]// Выполняет <выражение1>, если <выражение> истинно (отлично от нуля). Если else присутствует, и <выражение> - ложно (нуль), выполняется <выражение2>. После выполнения <выражение1> или <выражение2 >, управление переходит к следующему оператору. **return** Прекращает выполнение текущей функции и возвращает управление вызывающей программе, с возможностью передачи значения выражения. **switch** Сравнивает <выражение> с константами во всех вариантах case и выполняет оператор связанный с <постоянной-выражением>. Если отсутствует соответствия с постоянных с выражениями то выполняется утверждение, связанное с ключевым словом default. Если ключевое слово default не используется то управление переходит к утверждению после блока переключателя. %%(php)switch(выражение){ case константа1: выражение1; [break;] case константа(n): выражение(n); [break;] [default: выражение(n+1);] }%% **while** //while(выражение) оператор;// Выполняет <оператор>, пока <выражение> истинно. =====1.6.2 C++===== **explicit** Ставится перед конструктором объекта и предотвращает использование конструктора для неявного преобразования типов. **namespace** Назначение области действия имён: %%(php)namespace Example { int myvar; } k = Example::myvar;%% **this** Содержит указатель на собственный объект класса (т.е на себя); **typeid** Возвращает ссылку на объект type_info. Объект type_info - это поддерживаемый системой объект, представляющий тип. %%(php)const char *dataType = typeid(T).name();%% **typename** Указывает, что следующий за ним идентификатор обозначает тип. Обычно используется внутри шаблонов. **using** Делает глубоковложенную команду, со специальной областью видимости, видимой по умолчанию: %%(php) using std::cout; cout << "test"; using namespace math;%% ======Операторы преобразования типов====== **static_cast** Выполняет стандартные преобразования (статическое): %%(php) int x = static_cast<int>(d); string s = static_cast<string>("ch_string"); derivedPtr = static_cast<DerivedClass *>(basePtr); (преобразование потомка к базовому классу)%% **dynamic_cast** Выполняет динамическое приведение, иными словами, в процессе выполнения с проверкой возможности приведения. Можно использовать для программной проверки типа наследника из базового класса. %%(php) cylinderPtr = dynamic_cast<const Cylinder *>(shapePtr); if(cylinderPtr != NULL) shapePtr->area(); //Цилиндр%% **const_cast** Используется для снятия константности или volatile путём приведения: %%(php)const_cast<const CastTest *>(this)->number-; (при вызове из константной функции)%% **reinterpret_cast** Для нестандартных преобразований: %%(php)count << *reintepret_cast<char *>(ptr) « endl; (преобразует (int *) в (char *) и разыменовывает)%% ======Ключевые слова-операторы====== Стандарт языка C++ предоставляет ключевые слова-операторы, которые могут использоваться вместо нескольких операторов C++ (таблица 6). Таблица 6. **Ключевые слова-операторы языка С++** #| ||%%(wacko wrapper=text wrapper_align=center)**Оператор**%%|%%(wacko wrapper=text wrapper_align=center)**Слово-оператор**%%|%%(wacko wrapper=text wrapper_align=center)**Описание**%%|| ||%%(wacko wrapper=text wrapper_align=center)**Логические операторы-ключевые слова**%%|| ||&&|and|логическое И (AND)|| |||||or|логическое ИЛИ (OR)|| ||!|not|логическое НЕ (NOT)|| ||%%(wacko wrapper=text wrapper_align=center)**Оператор "не равно"-ключевое слово**%%|| ||!=|not_eq|не равно|| ||%%(wacko wrapper=text wrapper_align=center)**Побитовые операторы-ключевые слова**%%|| ||&|bitand|побитовое И (AND)|| ||||bitor|побитовое включающее ИЛИ (OR)|| ||^|xor|побитовое исключающее ИЛИ (OR)|| ||~|compl|побитовое инвертирование разрядов|| ||%%(wacko wrapper=text wrapper_align=center)**Побитовые операторы присваивания-ключевые слова**%%|| ||&=|and_eq|побитовое И (AND) и присваивание|| |||=|or_eq|побитовое включающее ИЛИ (OR) и присваивание|| ||^=|xor_eq|побитовое исключающее ИЛИ (OR) и присваивание|| |#
Please type the word you read in the image: