Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

лекции программирование / polevoy_cpp_2012_spring_lecture_05

.pdf
Скачиваний:
24
Добавлен:
20.04.2015
Размер:
128.48 Кб
Скачать

.h не должен содержать

определения обычных функций

определения данных

определения агрегатов

неименованные пространства имен

10.03.2010

cppNewb.ru

21

Использование заголовочных файлов в проектах

включайте все необходимое

минимизируйте число включений

включайте заголовочные файлы в

порядке увеличения общности

локальные

общеупотребительные

стандартные

разделяйте группы заголовков

10.03.2010

cppNewb.ru

22

Бинарный интерфейс компонент

соглашение о параметрах вызова

Си-соглашение

extern “C”

{

// source code

}

10.03.2010

cppNewb.ru

23

l-value

именующее выражение, ссылается на объект (м.б. const)

может стоять в левой части оператора

присваивания (если не const)

пример:

int num(1); num = 5;

*(p + 15)

10.03.2010

cppNewb.ru

24

r-value

• не l-value

пример:

5

//< литерал

a + b //< временные объекты

new int

//< новый объект

string(“0”) //< временный объект

s.size()

//< вызов функции

10.03.2010

cppNewb.ru

25

Пространства имен (namespace)

логически группирует объявления

определяет область видимости

могут быть вложенными

10.03.2010

cppNewb.ru

26

Создание пространства имен

namespace имя_пространства_имен

{

// объявления и определения

}

10.03.2010

cppNewb.ru

27

Создание пространства имен

пример:

namespace misis

{

// Узнать число групп. int getGroupsCount();

}

10.03.2010

cppNewb.ru

28

Доступ к именам в пространстве

доступ через оператор разрешения области видимости ::

имя_пространства_имен::имя_члена

пример:

std::cout

10.03.2010

cppNewb.ru

29

Глобальное пространство имен

все, что не лежит в собственном пространстве имен

доступ через :: (можно опускать)

10.03.2010

cppNewb.ru

30