Динамическая идентификация типов
Инструкция using
Пространства имён.
- Локализация имен идентификаторов во избежание конфликтов имен
- Конфликты: библиотеки, классы, функции, модули и пр.
- Namespace –использование одного имени в разных контекстах
- Все что определено внутри инструкции namespace находится в данной области видимости
Namespace hello {
Int I,k;
Void func(int j) {….}
Class newclass {
Public: void seti (int x) {i=x;}
Int geti() {return I;}
};
}
Hello::i=10;
Hello:: newclass ob;
Namespace NewNS {
Int I;
…
}
Namespace NewNS {
Int j;
….
}
// Разделение пространства имен осуществляется в пределах одного или нескольких файлов
- Using namespace имя – пространство имен, к которому необходим доступ. Все элементы получают доступ.
- Using имя:: элемент – видимый делается только указанный элемент
Using hello:: k;
K=10;
Using namespace hello;
I=10;
Статические элементы класса
- Существует только одна копия данной переменной, независимо от того, сколько объектов данного класса существует. Каждый объект просто использует эту одну переменную.
- Имеется только одна копия статической переменной.
- Наследование
- Нет необходимости в использовании глобальных переменных.
Статическая функция не имеет указателя this, не может быть виртуальной, не объявляется со спецификатором const.
|
|
Постоянные и модифицированные элементы класса
· Метода класса могут объявляться постоянными (const).
· Данные функции не могут изменять вызывающий объект
· Модифицируемый элемент класса можно изменить с помощью постоянного метода (mutable)
· Применяется в языках, поддерживающих полиморфизм (наследование, виртуальные функции, указатели базовых классов
· Определение типа должно происходить во время выполнения прграммы
· Оператор typeid
· Получение информации о типе объекта
· Заголовочный файл <typeinfo>
· Основная форма typeid(объект) – возвращает ссылку на объект типа type_info который и описывает тип объекта
· В классе type_info определены следующие элементы (==,!=, before, *name)
· Позволяет получить типы разных объектов
· Наиболее полезен, если в качестве аргумента задается указатель полиморфного базового класса (возвращает тип реального объекта)
· Динамическая идентификация типов используется при работе с полиморфными типами данных
Библиотека STL (Standard Template Library)
· Обеспечивает общецелевые, стандартные классы и функции, которые реализуют наиболее популярные и широко используемые алгоритмы и структуры данных
· Алгоритмы и структуры применимы ко всем типам данных
· Требует глубоко знания ООП, в частности шаблонов
· Обзор основ и базовых операций