polevoi_cpp_2013_spring_lecture_05
.pdf
Тип данных
•способ интерпретации объекта
•размер объекта
•набор допустимых операций
30.03.2013 |
41 |
Размер типа
•sizeof – оператор
•1 == sizeof(char)
•вычисляется для типа или объекта
пример:
T arr[SIZE] = {0};
size_t lenElements = sizeof(T) * SIZE; size_t lenElements = sizeof(&arr[0]) * SIZE; size_t lenArr == sizeof(arr));
30.03.2013 |
42 |
Неявные преобразования
•повышение
–bool -> int
–enum -> int или long
•обеспечение точности
–int + long
–int + double -> double
•усечение int n(f);
30.03.2013 |
43 |
Округление (примеры)
• до целого (с усечением)
пример:
int size(d);
• до ближайшего
пример:
int size(d + 0.5);
30.03.2013 |
44 |
Явные преобразования
static_cast<Тип>(выражение)
• преобразование родственных типов
пример:
int roundVal = static_cast<int>(doubleVal);
30.03.2013 |
45 |
Явные преобразования
const_cast<Тип>(выражение)
• изменение константности
пример:
char* pBeg = const_cast<char*>(p + n);
30.03.2013 |
46 |
Преобразования в стиле С
(Тип)выражение
Тип(выражение)
пример:
int roundVal = int(doubleVal + 0.5);
30.03.2013 |
47 |
