Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
new_mb.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
892.42 Кб
Скачать

1.3. Идентификаторы и пространства имен

Идентификатором называют имя класса, переменной, функции и других программных сущностей. Он может состоять из букв латинского алфавита в обоих регистрах, цифр и символа «_» и не должен начинаться с цифры. Язык С++ – регистрозависимый, т.е. идентификаторы «variable» и «VARIABLE» различны. Идентификатор должен быть уникальным, т.е. не должен совпадать с другими идентификаторами или зарезервированным словом. Имена выбираются, отталкиваясь от назначения переменной или функции. Типичным примером является префикс «tmp», говорящий о том, что данная переменная является временной.

Таблица 1.1. Зарезервированные слова.

and

char

dynamic_cast

goto

not_eq

short

try

and_eq

class

else

if

operator

signed

typedef

asm

compl

enum

inline

or

sizeof

typeid

auto

const

explicit

int

or_eq

static

typename

bitand

const_cast

export

long

private

static_cast

union

bitor

continue

extern

main

protected

struct

unsigned

bool

default

false

mutable

public

switch

using

break

delete

float

namespace

register

template

virtual

case

do

for

new

reinterpret_cast

this

void

catch

double

friend

not

return

true

volatile

wchar_t

while

xor

xor_eq

Длинные идентификаторы очень неудобны, но в случае повторного использования одного имени, возникнет ошибка – конфликт имен. Подобные проблемы решает контекст идентификатора – пространство имен – «namespace». Все имена группируются в соответствии со своим назначением, и каждой группе присваивается свой идентификатор. Несколько групп могут объединяться в одну. Отдельная группа и есть пространство имен, т.о. уникальность должна соблюдаться лишь в рамках одного (данного) пространства имен.

Обращение к классу или вызов функции происходит посредством оператора разрешения контекста «::». Если, к примеру, в пространстве имен «Math» существует еще одно – «Complex», где находиться искомая функция «Pow()», то ее вызов выглядит так: «Math::Complex::Pow()». Такие обращения утомительно и писать, и читать. Избавиться от этого помогает директива «using». Она позволяет сделать доступным пространство имен без явного к нему обращения: «using namespace Math::Complex». Возможно и включение отдельных идентификаторов «using Math::Complex::Pow». В обоих случаях обращаться к функции можно так, как если бы она являлась членном данного пространства имен. Различие состоит в том, что при включении всего пространства имен «Complex» будут доступны и другие неиспользуемые функции, которые могут вызвать конфликты имен.

В примере строка «using namespace std;» делает доступными все содержимое пространства имен «std». Оно определено в библиотечном файле «iostream», для включения которого необходимо использовать директиву препроцессора «#include» Для использования своих собственных файлов надо вместо символов «<>» использовать «""».

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]