Результат выполнения программы:
number = 9476928
p = 0000012C
5. Оператор static_cast. Пример.
Оператор static_cast используется для выполнения неполиморфного приведения типов без проверки его корректности. Приводимый тип и получаемый тип могут быть такими, что не образуют иерархию наследования.
Общая форма оператора следующая:
static_cast (expr)
здесь
type – результирующий тип;
expr – выражение, приводимое к типу type.
Пример.
#include
using namespace std;
void main()
{
// Применение оператора static_cast - неполиморфное приведение,
// используется так же как и обычный оператор приведения
// 1. Конвертирование int => double
double x;
int a = 25;
x = static_cast (a) / 4;
cout << "x = " << x << endl; // x = 6.25
// 2. Конвертирование double => char
double z = 51.55;
char c = static_cast (z); // c = '3'
cout << "c = " << c << endl;
// 3. Конвертирование double => short
short s = static_cast(118.232);
cout << "s = " << s << endl; // s = 118
}
Результат выполнения программы:
x = 6.25
c = 3
s = 118
Пространства имен. Ключевые слова namespace, using. Правила создания пространства имен. Глобальное пространство имен
1. Понятие пространства имен. Объявление пространства имен. Ключевое слово namespace. Задание именованного и неименованного пространства имен.
До появления пространств имен использовалось одно единое глобальное пространство. Это пространство содержало список общедоступных глобальных переменных и функций, которые можно было использовать в своей программе. Если в программе объявлялись собственные функции, чьи имена совпадали с именами функций глобального пространства имен (например, функции abs(), sqrt() и т.п.), то имена этих локальных функций перекрывали глобальные. Это вызывало неудобства и требовало более внимательного отношения к выбору имен. Также проблема выбора имен возникала при одновременном использовании нескольких сторонних библиотек.
Чтобы упростить использование имен в приложениях на C++, было введено понятие пространства имен. Пространство имен – это область определения переменных, типов, констант и функций, объединенная в единый или неименованный блок. Пространство имен обозначается с использованием ключевого слова namespace и в наиболее общем случае объявляется следующим образом:
namespace Name
{
// Объявление переменных, констант, типов, функций
// ...
}
После объявления пространства имен можно обращаться к его элементам. Имя пространства имен можно не указывать, если это имя объявлено в этом же пространстве имен.За пределами пространства имен обращение выглядит следующим образом
Name::item
Где
Name – имя пространства имен;
item – имя элемента (функции, класса, константы, переменной) который объявлен в пространстве имен.
Пространство имен может быть объявлено без имени по следующему синтаксису:
namespace
{
// составляющие пространства имен
// ...
}
С точки зрения размещения пространство имен может быть объявлено:
в одном модуле;
в нескольких модулях (см. примеры ниже).
Do'stlaringiz bilan baham: |