ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
типы определяемые программистом.Переименование типов typedef unsigned int unit; typedef char Msg[10]; unit I,j; Msg str[10]; Перечисление. Перечисляемый тип данных определятся списком целочисленных констант. Компилятор обеспечивает для переменных, отнесенных к этому типу. Принятие значений только из списка констант. enum err {err_read, err_write, err_convert} err error = err_read;
switch(error) { case err_read: break; }
другой пример enum { two =2, three, four, ten = 10, eleven}; //при отсутствии инициализации каждой следующей константе присваивается значение на еденицу больше значения предыдущей значения констант в списке могут совпадать, но имена должны быть различны. При выполнении арифметических операций константы рассматриваются, как целочисленные. т. к. перечислимый тип определяется программистом, то можно вводить собственные операции. Структуры Структура — совокупность разнотипных данных, объединенных одним "struct"[имя] "{"тип1 элемент1; тип2 элемент2;... "}" [список описателей];
//primer struct worker{ char fio[30]; int date, code; double celery; }; worker staff[100], *ps;
элементы структур(поля) могут иметь любой тип кроме типа этой же структуры, но могут быть указателями на него. Имя структуры можно использовать сразу после его объявления, а определение дать позднее. Например struct list; struct link { list *p; link *prew, *succ; } для инициализации структуры, значения ее элементов перечисляются в порядки их описаний.
struct { char fio[30]; int date, code; double celery; } worker = {"ivanov",31,215,312.60} return 0; При инициализации массивов структур следует заключать в фигурные скобки каждый элемент массива.(внешнего) struct complex { float real, im; }; complex[2][3]={ {{1,1},{ и т.д.} } для переменных одного и того же типа определена операция присваивания. доступ к полям структуры определяется с помощью операции выбора. если элементом структуры является другая структура то доступ к ее элементам выполняется через 2 операции выбора. Например struct A {int a; double x;}; struct B {A a; doble x;}; x[2]; x[0].a.a = 1; x[1].x = 0.1; поля структур могут иметь одинаковые имена, т.к. у них разная область видимости. Особый вид полей структуры — битовые поля. При описании битового поля после имени через двоеточие указывается длина поля в битах. Адрес битового поля получить нельзя, но в основном они используются как и обычные поля. Пример struct Options { bool centerX: 1; bool centerY: 1; unsigned int shadow: 2; unsigned int palette: 4; } размещение битовых полей в памяти зависит от компилятора и аппаратуры. Объединения Объединения — частный случай структуры, когда все поля располагаются по одному и тому же адресу. Длина объединения равна наибольшей из длин полей. В каждый момент времени переменная типа union содержит одно значение. #include <iostream> using namespace std;
int main() {enum paytype (card, check); paytype ptype; union payment; {char card[25]; long check; } info: switch(ptype) { case card: cout <<"Oplata" << info.card; break; case check: и т.д. Объединение можно использовать в качестве поля структуры, при этом следует добавить еще одно поле, которое определяет какое именно элемент объединения используется в данный момент Пример #include <iostream> using namespace std;
int main() { enum paytype{card, check}; struct {paytype ptype; union {char card[25]; long check; }; } info; //... switch(info.ptype) {case card: cout <<"Oplata po karte" <<info.card; break; case check: cout << "oplata chekom "<< info.check; break; } return 0; } на объединение налагаются следующие ограничения 1.объединение может инициализироваться только значением его первого элемента 2. объединение не может содержать битовые поля. 3. объединение не может содержать виртуальные методы, конструкторы, деструкторы и операцию приссваивания. 4. не может входить в иерархию классов
Не нашли, что искали? Воспользуйтесь поиском:
|