КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Система общих типов CTS
Концепцпя типа данных Понятие типа данных Данные, с которыми работает программа, хранятся в оперативной памяти. Естественно, что компилятору необходимо точно знать, сколько места они занимают, как именно закодированы и какие действия с ними можно выполнять. Все это задается при описании данных с помощью типа. Тип данных однозначно определяет: · внутреннее представление данных, а следовательно и множество их возможных значений; · допустимые действия над данными (операции и функции). Например, целые и вещественные числа, даже если они занимают одинаковый объем памяти, имеют совершенно разные диапазоны возможных значений. Каждое выражение в программе имеет определенный тип. Компилятор использует информацию о типе при проверке допустимости описанных в программе действий. Память, в которой хранятся данные во время выполнения программы, делится на две области: стек (stack) и динамическая область, или хип (heap). Стек используется для хранения величин, память под которые выделяет компилятор, а в динамической области память резервируется и освобождается во время выполнения программы с помощью специальных команд. Основным местом для хранения данных в C# является хип. Важно понимать две фундаментальные точки о системе типов в.NET Framework: · Она поддерживает принцип наследования. Типы могут быть производными от других типов, которые называются базовыми типами.Производный тип наследует (с некоторыми ограничениями) методы, свойства и другие члены базового типа.Базовый тип, в свою очередь, может быть производным от какого-то другого типа, при этом производный тип наследует члены обоих базовых типов в иерархии наследования.Все типы, включая встроенные числовые типы, например, System.Int32 (ключевое слово C#: int), в конечном счете являются производными от одного базового типа, который является System.Object (ключевое слово C#: объектом). Эта унифицированная иерархия типов называется Система общих типов CTS (CTS). · Каждый тип в CTS определен либо как тип значения, либо как ссылочный тип. Сюда включены все пользовательские типы в библиотеке классов платформы.NET Framework, а также собственные пользовательские типы.Типы, определяемые с помощью ключевого слова struct, являются типами значений; все встроенные числовые типы являются structs.Типы, определяемые с помощью ключевого слова class, являются ссылочными типами.Правила времени компиляции и поведение времени выполнения ссылочных типов отличается от правил времени компиляции и поведения времени выполнения типов значений. К сведениям, хранимым в типе, может относиться следующее: · Место для хранения, необходимое для переменной типа. · Максимальное и минимальное значения, которые могут быть представлены. · Содержащиеся члены (методы, поля, события и т. д.). · Базовый тип, которому он наследует. · Расположение, в котором будет выделена память для переменных во время выполнения. · Разрешенные виды операций. Давайте рассмотрим, как устроена система типов в языке C++. В С++ имеются: -стандартные (встроенные) типы; -классы, то есть типы, определяемые пользователем; -типы, которые можно получить из основных типов и классов (производные типы). Стандарт языка C++ включает следующий набор фундаментальных типов. 1. Логический тип (bool). 2. Символьный тип (char). 3. Целые типы. Целые типы могут быть одного из трех размеров - short, int, long, сопровождаемые описателем signed или unsigned, который указывает, как интерпретируется значение - со знаком или без оного. 4. Типы с плавающей точкой. Эти типы также могут быть одного из трех размеров - float, double, long double. Кроме того, в языке есть 5. Тип void, используемый для указания на отсутствие информации. Язык позволяет конструировать типы. 6. Указатели (например, int* - типизированный указатель на переменную типа int). 7. Ссылки (например, double& - типизированная ссылка на переменную типа double). 8. Массивы (например, char[] - массив элементов типа char). Язык позволяет конструировать пользовательские типы. 9. Перечислимые типы (enum) для представления значений из конкретного множества. 10. Структуры (struct). 11. Классы (class). Каждый конкретный тип данных определяется 2-мя факторами: 1) множеством значений, которые могут принимать объекты данного типа; 1а) интерпретирует двоичные коды объектов; 2) внутренне представление данных в компе; 3) набором операций (функций), которые можно применять к данному типу; 3а) контроль типов. В описании данных должна содержаться (для компилятора) следующая информация, задаваемая типом данных: · Имя переменной или константы · Размер памяти, необходимой для хранения значений · Какие действия можно выполнят с переменной или константой · Вид и способ выделения памяти · Начальные значения переменной или значение константы
Дата добавления: 2014-01-14; Просмотров: 401; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |