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

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

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

.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