Оператор typeid

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

Инструкция 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)

· Обеспечивает общецелевые, стандартные классы и функции, которые реализуют наиболее популярные и широко используемые алгоритмы и структуры данных

· Алгоритмы и структуры применимы ко всем типам данных

· Требует глубоко знания ООП, в частности шаблонов

· Обзор основ и базовых операций


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: