Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Краткое описание каждого из этих ключевых слов приведено в следующих разделах.



_ _abstract

Ключевое слово _ _abstract используется в сочетании со словом _ _gc при определении абстрактного управляемого класса. Объект _ _abstract-класса создать нельзя. Для класса, определенного с использованием ключевого слова _ _abstract, необязательно включение в него чисто виртуальной функции.

_ _box

Ключевое слов _ _box заключает в специальную оболочку значение внутри объекта. Такая " упаковка" позволяет использовать тип этого значения в коде, который требует, чтобы данный объект был выведен из класса System:: Object, базового класса для всех .NET-объектов.

_ _delegate

Ключевое слово _ _delegate определяет объект-делегат, который инкапсулирует указатель на функцию внутри управляемого класса (т.е. класса, модифицированного ключевым словом _ _gc).

_ _event

Ключевое слово _ _event определяет функцию, которая представляет некоторое событие. Для такой функции задается только прототип.

_ _finally

Ключевое слово _ _finally — это дополнение к стандартному С++-механизму обработки исключительных ситуаций. Оно используется для определения блока кода, который должен выполняться после выхода из блоков try/catch. При этом не имеет значения, какие условия приводят к завершению try/catch-блока. Блок _ _finally должен быть выполнен в любом случае.

_ _gc

Ключевое слово _ _gc определяет управляемый класс. Обозначение " gc" представляет собой сокращение от словосочетания " garbage collection" (т.е. " сборка мусора" ) и означает, что объекты этого класса автоматически подвергаются процессу утилизации памяти, освобождаемой во время работы программы, когда они больше не нужны. В объекте отпадает необходимость в случае, когда на него не существует ни одной ссылки. Объекты _ _gc-класса должны создаваться с помощью оператора new. Массивы, указатели и интерфейсы также можно определять с использованием ключевого слова _ _gc.

_ _identifier

Ключевое слово _ _identifier позволяет любому другому ключевому слову языка C++ использоваться в качестве идентификатора. Эта возможность не предназначена для широкого применения и введена для решения специальных задач.

_ _interface

Ключевое слово _ _interface определяет класс, который должен действовать как интерфейс. В любом интерфейсе ни одна из функций не должна включать тело, т.е. все функции интерфейса являются неявно заданными чисто виртуальными функциями. Таким образом, интерфейс представляет собой абстрактный класс, в котором не реализована ни одна из его функций.

_ _nogc

Ключевое слово _ _nogc определяет неуправляемый класс. Поскольку такой (неуправляемый) тип класса создается по умолчанию, ключевое слово _ _nogc используется редко.

_ _pin

Ключевое слово _ _pin используется для определения указателя, который фиксирует местоположение в памяти объекта, на который он указывает. Таким образом, " закрепленный" объект не будет перемещаться в памяти в процессе сборки мусора. Как следствие, сборщик мусора не в состоянии сделать недействительным указатель, модифицированный с помощью ключевого слова _ _pin.

_ _property

Ключевое слово _ _property определяет свойство, являющееся функцией-членом, которая позволяет установить или получить значение некоторой переменной (члена данных класса). Свойства предоставляют удобное средство управления доступом к закрытым (private) или защищенным (protected) данным.

_ _sealed

Ключевое слово _ _sealed предохраняет модифицируемый им класс от наследования другими классами. Это ключевое слово можно также использовать для информирования о том, что виртуальная функция не может быть переопределена.

_ _try_cast

С помощью ключевого слова _ _try_cast можно попытаться преобразовать тип выражения. Если предпринятая попытка окажется неудачной, будет сгенерировано исключение типа System:: InvalidCastException.

_ _typeof

Ключевое слово _ _typeof позволяет получить объект, который инкапсулирует информацию о данном типе. Этот объект представляет собой экземпляр класса System:: Туре.

_ _value

Ключевое слово _ _value определяет класс, который представляет собой обозначение типа. Любое обозначение типа содержит собственные значения. И этим тип _ _value отличается от типа _ _gc, который должен выделять память для объекта с помощью оператора new. Обозначения типа, не представляют интерес для " сборщика мусора".

Расширения препроцессора

Для поддержки .NET-среды компания Microsoft определяет директиву препроцессора #using, которая используется для импортирования метаданных в программу. Метаданные содержат информацию о типе и членах класса в форме, которая не зависит от конкретного языка программирования. Таким образом, метаданные обеспечивают поддержку смешанного использования языков программирования. Все управляемые С++-программы должны импортировать библиотеку < mscorlib.dll> , которая содержит необходимые метаданные для оболочки .NET Framework.

Компания Microsoft определяет две pragma-инструкции (используемые с директивой препроцессора #pragma), которые имеют отношение к оболочке .NET Framework. Первая (managed) определяет управляемый код. Вторая (unmanaged) определяет неуправляемый (собственный, т.е. присущий данной среде) код. Эти инструкции могут быть использованы внутри программы для селективного создания управляемого и неуправляемого кода.

Атрибут attribute

Компания Microsoft определяет атрибут attribute, который используется для объявления другого атрибута.

Компиляция управляемых С++-программ

На момент написания этой книги единственный доступный компилятор, который мог обрабатывать программы, ориентированные на работу в среде .NET Framework, поставлялся компанией Microsoft (Visual Studio.NET). Чтобы скомпилировать управляемую программу, необходимо использовать команду /сlr, которая передаст вашу программу " в руки" универсального средства Common Language Runtime.


Предметный указатель

-Символы-

#define, директива, 570

#elif, директива, 576

#endif, директива, 575

#error, директива, 574

#if, директива, 575

#ifdef, директива, 577

#ifndef, директива, 577

#include, директива, 574; 602

#pragma, директива, 580

#undef, директива, 578

#using, 609

.NET Framework, 606

_ _abstract, 606

_ _box, 607

_ _cplusplus, макрос, 582

_ _DATE_ _, макрос, 582

_ _delegate, 607

_ _event, 607

_ _FILE_ _, макрос, 580; 582

_ _finally, 607

_ _gc, 607

_ _identifier, 607

_ _interface, 608

_ _LINE_ _, макрос, 580; 582

_ _nogc, 608

_ _pin, 608

_ _property, 608

_ _sealed, 608

_ _STDC_ _, макрос, 582

_ _TIME_ _, макрос, 582

_ _try_cast, 608

_ _typeof, 609

_ _value, 609

-A-

abort(), 417, 419

abs(), 167; 191

Allocator, 524

American National Standards Institute, 18

ANSI, 18

asm, 514

assign(), 563

atof(), 164

attribute, 609

auto, спецификатор, 149; 206

-B-

bad(), 471

bad_cast, исключение, 484

BASIC, 24

basic ios, класс, 440

basic_iostream, класс, 440

basic_istream, класс, 440

basic ostream, класс, 440

basic_streambuf, класс, 440

BCPL, 23

before(), 475

begin(), 529

Binding

  early, 393

  late, 393

bool, 56

boolalpha, флаг, 448

break, 95

-C-

C#, 29

C++ Builder, 27; 33

C89, 23

C99, 23

Call-by-reference, 178

Call-by-value, 178

Cast, 75

catch, 416

cerr, 440

char, 56; 61

cin, 440

class, 266

clear(), 471

clock(), 213

clog, 440

close(), 458

CLR, 606

Common Language Runtime, 606; 609

compare(), 566

const, спецификатор типа, 202; 508

const_cast, оператор, 488

continue, 94

count(), алгоритм, 554

count_if(), алгоритм, 554

cout, 440

-D-

Daylight Saving Time, 251

dec, флаг, 448

delete, 230

double, 40; 56

do-while, 93

dynamic_cast, оператор, 483

-E-

Early binding, 393

end(), 529

enum, 214

eof(), 463

erase(), 529

exit(), 418; 419

EXIT_FAILURE, константа, 419

EXIT_SUCCESS, константа, 419

explicit, 510

extern, 206; 516

-F-

fabs(), 191

fail(), 471

false, константа, 57

fclose(), 595

feof(), 595

ferror(), 597

fgetc(), 595

fill(), 451

find(), 565

fixed, флаг, 448

flags(), 449

Flat model, 141

float, 56

flush(), 467

fmtflags, перечисление, 447

fopen(), 593

for, цикл, 49; 82

FORTRAN, 24

fprintf(), 600

fputc(), 594

fread(), 597

free(), 233

friend, 294

fscanf(), 600

fseek(), 599

Function overloading, 190

fwrite(), 597

-G-

gcount(), 463

Generated function, 398

get(), 460; 465

Getline(), 466

gets(), 107

good(), 471

goto, 97

GUI, 18; 34

-H-

Heap, 229

hex, флаг, 448

-I-

IDE (Integrated Development Environment), 33

if, 48; 78

if-else-if, 81

Inline function, 283

inline, модификатор, 284; 574

insert(), 529; 537

Instantiating, 398

int, 38; 56; 61

Integral promotion, 74

Integrated Development Environment, 33

internal, флаг, 448

International Standards Organization, 18

ios, класс, 447

ios_base, класс, 440

iostate, перечисление, 470

isalpha(), 114

ISO, 18

-J-

Java, 29

-K-

Kbhit(), 139

-L-

labs(), 191

Late binding, 393

left, флаг, 448

list, класс, 536

long double, 61; 62

long int, 61; 62

long, модификатор, 60

-M-

main(), 162

make_pair(), 546

malloc(), 233

managed, 609

Manipulator, 447

map, класс, 545

merge(), 537

MFC, 387

Microsoft Foundation Classes, 387

Microsoft Intermediate Language, 606

Modula-2, 23; 41

MSIL, 606

Multiple indirection, 141

mutable, 509

-N-

name(), 475

namespace, 494

Namespace, 35

new, оператор, 230; 430

nothrow, 431

npos, 561

NULL, 594

-O-

Object Oriented Programming, 264

oct, флаг, 448

OOP, 264

open(), 456

openmode, перечисление, 457

operator, 320

Operator, 68

overload, 193

-P-

pair, класс, 546

Pascal, 23; 41

peek(), 467

Plain Old Data, 281

POD-struct, 281

Pointer-to-member, 517

precision(), 451

Predicate, 524

Preprocessor, 570

printf(), 585

private, 281; 355

protected, 357

public, 267; 355

push_back(), 529; 537

put(), 460

putback(), 467

-Q-

qsort(), 503

Quicksort, алгоритм, 503

-R-

rand(), 138; 478

rdstate(), 470

read(), 461

Reference parameter, 181

register, спецификатор, 211

reinterpret_cast, оператор, 490

remove(), 600

return, инструкция, 166

rewind(), 597

rfind(), 565

right, флаг, 448

RTTI, 474

-S-

scanf(), 588

Scanset, 590

scientific, флаг, 448

seekg(), 468; 470

seekp(), 468; 470

setf(), 448

short int, 61

short, модификатор, 60

showbase, флаг, 448

showflags(), 450

showpoint, флаг, 448

showpos, флаг, 448

signed char, 61

signed int, 61

signed long int, 61; 62

signed short int, 61

signed, модификатор, 60

Simula67, 26

sizeof, 227; 263

skipws, флаг, 448

splice(), 537

Standard C++, 27

Standard Template Library, 26; 54; 522

static, модификатор, 208; 210; 506

static_cast, оператор, 489

std, пространство имен, 35; 438

stderr, поток, 585

stdin, поток, 585

stdout, поток, 585

STL, 26; 54; 522

strcat(), 109

strcmp(), 110

strcpy(), 109; 171

Stream, 439

streamsize, тип, 451

string, класс, 559

strlen(), 111; 161

struct, 238

switch, 87

-T-

tellg(), 470

tellp(), 470

template, 396; 405

template< >, 401; 413

terminate(), 417

this, 317; 508

throw, 416

throw-выражение, 427

time_t, тип даты, 251

tm, структура, 251

tolower(), 113

toupper(), 135

true, константа, 57

try, 416

Type promotion, 74

type_info, класс, 474

typeid, 474

typename, 396

-U-

unexpected(), 427

Union, 258

unitbuf, флаг, 448

unmanaged, 609

unsetf(), 448; 449

unsigned char, 61

unsigned int, 61

unsigned long int, 61; 62

unsigned short int, 61

unsigned, модификатор, 60

uppercase, флаг, 448

using, 35; 497

virtual, 375; 381

Visual Basic, 23

Visual C++, 27; 33

void, 43; 47; 56

void-функции, 169

volatile, спецификатор типа, 204

-W-

wcerr, 440

wchar_t, 56

wcin, 440

wclog, 440

wcout, 440

while, 91

width(), 451; 452

write(), 461

-А-

Абстрактный класс, 393

Алгоритм

  adjacent_find(), 551

  binary_search(), 551

  copy(), 551

  copy_backward(), 551

  count(), 551

  count_if(), 551

  equal(), 551

  equal_range(), 551

  fill(), 551

  fill_n(), 551

  find(), 551; 552

  find_end(), 551

  find_first_of(), 552

  for_each(), 552

  generate(), 552

  generate_n(), 552

  includes(), 552

  inplace_merge(), 552

  iter_swap(), 552

  lexicographical_compare(), 552

  lower_bound(), 552

  make_heap(), 552

  max(), 552

  max_element(), 552

  merge(), 552

  min(), 552

  min_element(), 552

  mismatch(), 552

  next_permutation(), 552

  nth_element(), 552

  partial_sort(), 552

  partial_sort_copy(), 552

  partition(), 552

  pop_heap(), 553

  prev_permutation(), 553

  push_heap(), 553

  Quicksort, 105

  random_shuffle(), 553

  remove(), 553

  remove_copy(), 553; 555

  remove_copy_if(), 553

  remove_if(), 553

  replace(), 553

  replace_copy(), 553; 555

  replace_copy_if(), 553

  replace_if(), 553

  reverse(), 553; 557

  rotate(), 553

  search(), 553

  search_n(), 553

  set_difference(), 553

  set_intersection(), 553

  set_symmetric_difference(), 553

  set_union(), 553

  sort(), 553

  sort_heap(), 553

  stable_partition(), 553

  stable_sort(), 553

  swap(), 553

  swap_ranges(), 553

  transform(), 553; 557

  unique(), 553

  upper_bond(), 553

Алгоритмы, 523; 551

  командной строки, 162

  по умолчанию, 193

  функции main(), 45; 162

Ассемблер, 23; 514

Атрибут

  attribute, 609

-Б-

Библиотека

  < mscorlib.dll>, 609

  STL, 522

Битовое множество, 525

Битовые поля, 256

Блок кода, 24; 51; 148

-В-

Вектор, 527

Виртуальное наследование, 375

Виртуальные функции, 381

Выражение, 73

  условное, 79

-Г-

Глобальные переменные, 59

-Д-

Дек, 525

Декремент, 69

Деструктор, 273

Динамическая идентификация типов, 474

Динамическая инициализация, 300

Динамический массив, 526

Директива препроцессора, 570

  #define, 570

  #elif, 576

  #endif, 575

  #error, 574

  #if, 575

  #ifdef, 577

  #ifhdef, 577

  #include, 574; 602

  #line, 580

  #pragma, 580

  #undef, 578

  #using, 609

Дополнительный код, 62

-З-

Заголовки, 172

Заголовок

  < algorithm>, 551

  < bitset>, 525

  < cctype>, 113

  < cstdio>, 584

  < cstdlib>, 44; 419; 504

  < cstring>, 109

  < ctime>, 213; 251; 298

  < deque>, 525

  < fstream>, 456

  < functional>, 525

  < iomanip>, 453

  < iostream>, 35; 438; 440; 466

  < list>, 525

  < map>, 525

  < new>, 430; 436

  < queue>, 526

  < set>, 526

  < stack>, 526

  < string>, 559

  < typeinfo>, 474

  < utility>, 525

  < vector>, 526

  stdio.h, 588

Заголовочный файл

  < iostream.h>, 438

  stdio.h, 584

-И-

Идентификатор, 53

Индекс, 102

Инициализация

  динамическая, 300

  массивов, 115

  переменных, 66

Инкапсуляция, 27

Инкремент, 69

Инструкция

  continue, 94

  do-while, 93

  for, 49

  goto, 97

  if, 48; 78

  return, 45; 166

  switch, 87

  while, 91

Исключение, 230; 416

  bad_alloc, 430

  bad_cast, 484

  bad_typeid, 477

  System:: InvalidCastException, 608

Исключительная ситуация, 416

Итераторы, 523

  входные, 523

  выходные, 523

  двунаправленные, 523

  однонаправленные, 523

  произвольного доступа, 523

  реверсивные, 524

-К-

Класс, 266

  allocator, 524

  basic_ios, 440

  basic_iostream, 440

  basic_istream, 440

  basic_ostream, 440

  basic_streambuf, 440

  fstream, 456

  ifstream, 456

  ios, 447; 457

  ios_base, 440

  list, 536

  map, 545

  ofstream, 456

  pair, 546

  string, 559

  type_info, 474

  vector, 527

  абстрактный, 393

  базовый, 352

  полиморфный, 381; 475

  производный, 352

  шаблонный

  pair, 525

Классы

  контейнерные, 525

    bitset, 525

    deque, 525

    list, 525

    map, 525

    multimap, 526

    multiset, 526

    priority_queue, 526

    queue, 526

    set, 526

    stack, 526

    vector, 526

  обобщенные, 404

Ключевые слова C++, 53

Комментарий, 34

Компилятор

  C++ Builder, 33

  Visual C++, 33

Константа, 63

  CLOCKS_PER_SEC, 298

  EXIT_FAILURE, 419

  EXIT_SUCCESS, 419

  npos, 561

Конструктор, 272; 511

  копии, 305; 311

  параметризованный, 275

Контейнерные классы, 525

Контейнеры, 523

  ассоциативные, 523; 545

  векторы, 526

  последовательные, 523

Куча, 229; 552; 553

Кэш, 212

-Л-

Лексема, 132

Линейный список, 525

Литерал, 63

  восьмеричный, 64

  строковый, 65; 106

  шестнадцатеричный, 64

Локальные переменные, 57

-М-

Макроимя, 570; 582

Макроподстановка, 570

Макрос

  _ _cplusplus, 582

  _ _DATE_ _, 582

  _ _FILE_ _, 582

  _ _LINE_ _, 582

  _ _STDC_ _, 582

  _ _TIME_ _, 582

  SEEK_CUR, 599

  SEEK_END, 599

  SEEK_SET, 599

Манипулятор, 452

  boolalpha, 452

  dec, 452

  endl, 452

  ends, 452

  fixed, 452

  flush, 452

  hex, 452

  internal, 452

  left, 452

  noboolalpha, 452

  noshowbase, 452

  noshowpoint, 452

  noshowpos, 452

  noskipws, 452

  nounitbuf, 453

  nouppercase, 453

  oct, 453

  resetiosflags(), 453

  right, 453

  scientific, 453

  setbase(), 453

  setfill(), 453

  setiosflags(), 453; 454

  setprecision(), 453

  setw(), 453

  showbase, 453

  showpoint, 453

  showpos, 453

  skipws, 453

  unitbuf, 453

  uppercase, 453

  ws, 453; 454

Манипуляторные функции, 454

Массив, 102; 131

  двумерный, 114

  инициализация, 115

  многомерный, 115

  одномерный, 102

  объектов, 286

  строк, 119

  указателей, 137

Метаданные, 609

Метка, 98


Поделиться:



Популярное:

  1. F. Дела челобитчиковы. - Условный критерий частноправного отношения. - Безразличие методов процедирования. - Екатерининская эпоха. - Единство в праве. - Судебная волокита
  2. F70.99 Умственная отсталость легкой степени без указаний на нарушение поведения, обусловленная неуточненными причинами
  3. F71.98 Умственная отсталость умеренная без указаний на нарушение поведения, обусловленная другими уточненными причинами
  4. F78.81 Другие формы умственной отсталости с другими нарушениями поведения, обусловленные предшествующей инфекцией или интоксикацией
  5. For (инициализация; условие; инкремент)
  6. I. Выделение (узнавание) звука на фоне слова
  7. I. Дополните предложения данными словами. Переведите предложения на русский язык.
  8. I. Слова на праздники Господни и Богородичные
  9. II. Вычленение первого и последнего звука из слова
  10. II. Однородные члены предложения могут отделяться от обобщающего слова знаком тире (вместо обычного в таком случае двоеточия), если они выполняют функцию приложения со значением уточнения.
  11. II. Описание экспериментальной установки.
  12. II. ПОНИМАНИЕ РЕЧИ И СЛОВЕСНЫХ ЗНАЧЕНИИ


Последнее изменение этой страницы: 2016-03-17; Просмотров: 1235; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.325 с.)
Главная | Случайная страница | Обратная связь