КАТЕГОРИИ: Архитектура-(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) |
Расписание обзорных лекций
Struct Struct Struct Struct Do План. 37-11-37, 321-888 РОСГОССТРАХ, ООО, филиал в г. Омске 32-53-60 Югория, ОАО, Государственная страховая компания, Омский филиал 51-01-01 УралСиб, ЗАО, страховая группа 39-63-17 Спасские Ворота, ЗАО, страховая группа, филиал в г. Омске 24-80-87 Согласие, ООО, страховая компания 21-29-41 СОГАЗ, ОАО, Омский филиал 28-64-87 Северо-западная страховая компания, ООО, Омский филиал 37-27-78 Русский Страховой Центр, СОАО, филиал в г. Омске 56-96-25 РОССТРАХ, ОАО, филиал в г. Омске 24-08-15 РОСНО, страховая компания 24-96-66 РЕСО-Гарантия, ОСАО, филиал в г. Омске 37-01-83 Первая страховая компания, ООО, филиал в г. Омске 25-44-20 Омск-АСКО, страховая компания 56-92-89 Наста, ООО, Омский филиал 37-12-85 Мегаполис, ООО, филиал в г. Омске 31-56-54 КапиталЪ Страхование, ОАО, филиал в г. Омске 51-00-34 Ингосстрах, ОСАО, филиал в г. Омске 56-92-79 Зенит, страховое общество, Омский филиал 59-03-03 Единая Служба Аварийных Комиссаров, ООО 30-64-23 Группа Ренессанс Страхование, ООО, филиал в г. Омске 36-21-20 АльфаСтрахование, ОАО, Омский филиал г. Омск, ул. Маяковского, д.81 г. Омск, ул. Пушкина, д.17/4 г. Омск, ул. Долгирева, д.1 г. Омск, ул. 10 лет Октября, д. 74а г. Омск, пр. К. Маркса, д. 20-301 г. Омск, ул. Ленина, д.38/ул. Чокана Валиханова, д.4-403 г. Омск, ул. М. Жукова, д. 76-14 г. Омск, ул. 10 лет Октября, д. 74а г. Омск, ул. Интернациональная, д.35/ул. Тарская, д.14 г. Омск, ул. М. Жукова, д. 25/ул. 10 лет Октября, д. 31 - 416-418 г. Омск, ул. Третьяковская, д. 73 г. Омск, ул. Орджоникидзе, д. 48 - 315, 408 г. Омск, ул. 10 лет Октября, д. 74а г. Омск, пр. К. Маркса, д. 18/10 - 203 г. Омск, ул. Щербанева, д. 25 - 404 г. Омск, ул. Гагарина, д. 8/1 - 17-21 г. Омск, ул. Кемеровская, д. 9 - 125, 219 г. Омск, пр. К. Маркса, д. 18/1 - 212а г. Омск, ул. Учебная, д. 83 - 210, 215 г. Омск, ул. Маяковского, д.83 г. Омск, ул. Лермонтова, 62
1. Неконсервативная революция на Западе. Особенности современной стратегии ведущих стран Запада. 2. Проблемы экономического развития стран в условиях глобализации. 3. Особенности «информационной революции» и формирование инновационной экономической модели. 4. Производственная культура в условиях становления информационной экономики. 5. Эволюция социальной структуры западного общества в XX-начале XXI в. 6. Наука и культура в 50-60е годы.
Во второй половине XX в. мир начал переход к новому типу общественного строя — информационному. В таком обществе доминирует не тот, кто обладает крупнейшей военной силой или накопил наибольшие богатства, а тот, кто владеет большими объемами информации (знаний) и успешнее применяет их. Основой и главным источником богатства, силы, власти в информационном обществе становится знание. Меняется и сам тип власти — прямое и грубое господство уходит в прошлое, ему на смену приходит сила убеждения. Ключевые политические игроки новой эпохи не правительства или партии, а средства массовой информации, неправительственные организации и отдельные личности — создатели новых смыслов, ценностей, стилей жизни. Догматизированное, «командное» мышление советского правящего класса, непонимание им растущей роли знания и новых способов его распространения предопределили историческое поражение советской экономики и советского общества. Сумев в 30—50-х гг. XX в. осуществить ускоренную индустриализацию, советская элита пропустила качественный скачок, начавшийся в общественном развитии Запада в 1960—1970-х гг., когда на первый план вышло быстрое развитие информационных технологий. СССР создал материальную базу индустриального общества в виде крупномашинной промышленности и даже отдельных элементов постиндустриальной инфраструктуры (огромный научный потенциал, собственную электронную и компьютерную промышленность, советский средний класс — многочисленную инженерно-техническую интеллигенцию). Но СССР был и остался очень «простым» обществом, он не смог выйти на новый уровень общественной сложности, не решился так изменить свою общественную организацию, чтобы превратить знание в главную материальную силу экономики и социума. Эту задачу приходится решать уже новой России, возникшей в результате распада СССР. Информационное общество отличается от индустриального широчайшим доступом его граждан к разнообразной информации, высоким уровнем развития средств создания, сбора, переработки, доставки и распространения информации, всеобщей компьютеризацией, взрывообразным ростом коммуникаций всех видов. Гражданин информационного общества не может полноценно жить и трудиться без доступа к средствам создания и распространения информации, так же как и житель аграрного государства не мог жить без земельного надела, а житель индустриального общества не быть в том или ином качестве включенным в индустриальную производственную структуру. В информационном обществе уровень знаний, а не частная собственность становится главным фактором и источником социальных различий. Деление на имущих и неимущих основывается на владении/невладении информацией: привилегированный слой образуют информированные граждане, зависимый слой — неинформированные и недоинформированные. Очаги социальных конфликтов перемещаются из экономической сферы в сферу культуры и знания В информационном обществе, как и в индустриальном, есть свои предприниматели, военные, чиновники, чернорабочие. Но не они образуют социальную ткань этого общества, не они в нем доминируют. Социальная основа информационного общества — это широкий слой работников, участвующих в сборе, создании, переработке, распространении и доставке информации. Именно поэтому резко возрастает ценность образования, причем не только традиционного (школа — институт), но и вторичного и дополнительного. Высшее образование становится из редкого и малодоступного практически всеобщим, без него в информационном обществе невозможно получить хоть сколько-нибудь квалифицированную работу. Более того, в последние десятилетия появилось новое явление, ставшее актуальным, — пожизненное образование (Lifelong Learning в дословном переводе с английского означает «непрерывное пожизненное образование»). Настолько быстро меняются в современном мире технологии, с таким ускорением совершенствуются человеческие знания, что базового образования для современного человека недостаточно. Он обречен учиться всю свою жизнь, если хочет быть конкурентным на рынке труда. Но еще большее значение приобретает способность человека постоянно находиться на орбите движения информации, его готовность потреблять и перерабатывать ее во всевозрастающих объемах. А важным требованием к государству становится следующее: обеспечить наилучшие условия для широкой циркуляции общественно полезной информации, создать сложную и всеобъемлющую информационную инфраструктуру, без которой больше немыслимы ни быстрое развитие экономики, ни полноценное функционирование человеческого общества. Образованные, состоятельные, знающие себе цену и являющиеся объектом конкуренции со стороны нанимателей (будь то предприниматели или государство) люди, по определению, не могут быть несвободными. Информационное общество в политическом отношении представляет собой демократию с широчайшими возможностями влияния избирателей на власть, их участия в формировании и осуществлении всех функций государства. Такие возможности реализуются во многом благодаря новой технологической базе («электронное правительство»). Чтобы руководить «когнитариатом», государству и политикам приходится переходить от прямого, административно-приказного управления — к косвенному, скрытому воздействию. «Жесткая» власть, опирающаяся на насилие, уступила место «мягкой» власти (от англ. soft power), основанной на убеждении людей, идеологической работе, тонком манипулировании общественным сознанием. Теперь власть мягко, исподволь, постепенно подталкивает людей к определенному способу восприятия действительности и типу поведения. Чтобы принять то или иное решение, власти сначала нужно убедиться, что люди согласны его выполнить. Значит, нужно подготовить сознание людей именно к тому решению, которое следует принять. Это требует манипулирования человеческим сознанием, воздействия на него на более глубоком уровне, уровне исходных понятий и ценностей, т. е. уровне общественной идеологии. Информационное общество с его обилием информационных потоков и огромной потребностью людей в разного рода информации создает для этого широкие возможности. Эти возможности можно употребить во благо для развития гражданского общества, укрепления его морали, воспитания в людях чувства патриотизма, гражданской активности, терпимости, солидарности. Но можно употребить эти возможности и во зло: для внутреннего разложения общества, активизации всех его конфликтных линий, дискредитации государственного строя, обрушения морального климата. В том и другом случае «мягкая сила» действует на людей через «тонкую настройку», манипулирование сознанием путем целенаправленной, дозированной и препарированной особым способом подачи информации. Политика власти должна соответствовать тому мировоззрению, которое сложилось в обществе, иначе такая власть долго не продержится. Поэтому власть в информационную эпоху переходит от тех, кто отдает приказы, к тем, кто формирует сознание людей, закладывает в него определенные стереотипы, образы, модели поведения. Осознавая этот процесс, правительства пытаются привлечь таких специалистов на свою сторону, самим воздействовать на общество новыми средствами. Но, несмотря на громадные политические, административные и финансовые возможности властей, работать с новыми и малопонятными для них технологиями «мягкой силы» у государства, сформировавшегося в индустриальную, доинформационную эпоху, получается плохо. Гораздо чаще государства становятся, осознанно или нет, жертвами «мягкой силы», управляемой изнутри или извне. Гораздо чаще манипуляции осуществляют группы влияния, лишь формально связанные со своей страной, в реальности же ориентированные на интересы одной из глобальных сил (лагерей). В этом случае национальные интересы самой страны приносятся в жертву глобальным приоритетам и стратегиям. Такая манипуляция общественным сознанием может преследовать цель ликвидировать суверенитет и независимость страны, интегрировать ее в тот или иной глобальный лагерь, подчинить ее развитие наднациональным стратегиям и приоритетам. Особо уязвимыми перед такими манипуляциями оказываются отстающие и зависимые страны, не успевшие выйти из индустриальной (или тем более аграрной) фазы развития и перейти в информационную. Усиление политической роли СМИ происходит непрерывно на протяжении уже более чем ста лет. Свою первую войну газеты спровоцировали и развязали еще в 1898 г. Раздув незначительный инцидент с американским кораблем в бухте Гаваны, газеты Нью-Йорка, Бостона и Филадельфии развязали в США милитаристскую истерию и добились объявления войны Испании (которой тогда принадлежала Куба). Результатом войны стал переход под контроль США испанских колоний — Кубы и Филиппин. Постоянное повышение политической роли СМИ в информационном обществе происходит под лозунгом защиты «независимости СМИ» как одной из главных демократических свобод и признания их роли как «четвертой власти» в демократическом обществе. Эту свободу и эту роль вынуждены признавать все государства. Однако сами СМИ вполне зависимы не только от своих читателей, на чьи интересы и вкусы они ориентируются, но и от позиции своих владельцев, своих главных редакторов, от узких групп людей, определяющих политику СМИ. И эти люди благодаря контролируемым ими каналам информации обретают огромную власть над обществом, власть, которой они обычно распоряжаются не в общественных, а в своих частных, личных, групповых интересах. В последние годы альтернативой телевидению по популярности, распространению и глубине воздействия на людей постепенно становится глобальная сеть Интернет.
Уровень проникновения Интернета постоянно растет и сдерживается только дефицитом технологической инфраструктуры и отчасти низкой платежеспособностью населения развивающихся стран. Впрочем, оба этих препятствия достаточно быстро и безболезненно преодолеваются. В целом ряде стран действуют государственные программы «интернетизации», предполагающие создание разветвленной инфраструктуры доступа в Интернет, прежде всего для образовательных учреждений. В нашей стране такая программа называется «Электронная Россия». За словом «информация» сегодня по большей части скрывается не новое знание, а его передача, коммуникация. В Интернете практически не создается нового знания, зато имеющееся знание активно тиражируется, распространяется и обменивается. Информационное общество — это общество мгновенных и всеохватывающих коммуникаций, общество всеобщей связи (лат. communis, собственно, и означает «связь»). Интернет и представляет собой весьма удобное и комфортное средство связи. Наиболее успешен, востребован, информирован в современном обществе не тот, кто больше знает, а тот, кто больше общается, участвует в большем количестве коммуникаций.
Такие попытки периодически предпринимаются и, как правило, встречают раздражение и непонимание со стороны как самих пользователей Сети, так и государств, исповедующих свои взгляды на то, что разрешено, а что запрещено. Так, жесткой критике на Западе подвергается практика тотальной цензуры Интернета, принятая в Китае. Впрочем, полноценно осуществлять регулирование Сети национальным государствам мешает сам глобальный характер Интернета. Его будущее зависит от того, удастся ли международному сообществу разработать общепринятые стандарты поведения и эффективно контролировать, как они проводятся в жизнь на всей территории планеты. В социальном смысле информационное общество резко отличается от своих предшественников. И аграрный, и индустриальный мир были построены вертикально: существовала понятная общественная иерархия, каждая социальная группа или класс (а их было немного) знали свое место и не претендовали на чужое. Социальную структуру этих обществ можно описать как пирамиду, в самом низу которой находились угнетаемые и эксплуатируемые классы (рабы, зависимые крестьяне, позже — промышленный пролетариат), а на верхушке — классы эксплуататорские (аристократия, воины, жрецы, позднее — предприниматели-капиталисты). В аграрном обществе основание пирамиды было очень широким (огромное число зависимых крестьян, рабов), а ее верхушка — почти неразличимой (монарх и его окружение). В индустриальном обществе средняя часть пирамиды существенно расширилась за счет появления многочисленного среднего класса, но пирамида тем не менее оставалась пирамидой.
{ cout << “\nКупи слоника! “; cin >> answer; } while (answer!= ‘y’); return 0; } Цикл с параметром имеет следующий формат: for (инициализация; выражение; модификации) оператор В части инициализации можно записать операторы, разделенные запятой (операцией «последовательное выполнение»). Например: for (int i = 0, j = 2;... …………….. int k, m; for (k = 1, m = 0;... Областью действия объявленных в инициализации переменных является весь цикл. Инициализация выполняется один раз в начале выполнения цикла. Выражение определяет условие выполнения цикла: если его результат соответствует true, цикл выполняется. В этом смысле цикл с параметром аналогичен циклу с предусловием. Модификации выполняются после каждой итерации цикла и служат обычно для изменения параметров цикла. В части модификаций также можно записать несколько операторов через запятую. Простой или составной оператор представляет собой тело цикла. Любая из частей оператора for может быть опущена (точки с запятой остаются). Пример (нахождение всех делителей целого положительного числа): #include <iostream.h> int main () { int num, half, div; cout << “\nВведите число: “; cin >> num; for (half = num / 2, div = 2; div <= half; div++) if (!(num % div)) cout << div << “\n”; return 0; }
4.5.4. Операторы передачи управления
В C++ есть четыре оператора, изменяющих естественный порядок выполнения вычислений: · безусловный переход goto; · выход из цикла break; · переход к следующей итерации continue; · возврат из функции return. Применение этих операторов (особенно goto) противоречит структурному программированию, поэтому их рекомендуется использовать лишь при необходимости. В связи с этим в настоящем курсе вообще не рассматривается оператор goto. Оператор break используется внутри операторов цикла или switch для обеспечения перехода в точку программы, находящуюся непосредственно за оператором, внутри которого находится break. Оператор continue пропускает все операторы, оставшиеся до конца тела цикла, и передает управление на начало следующей итерации. Оператор возврата из функции return завершает выполнение функции и передает управление в точку, следующую за ее вызовом. Его вид таков: return [выражение]; Выражение должно иметь тип возвращаемого функцией значения. Если последний описан как void, выражение в return должно отсутствовать.
{ char fio[30]. int date, code; double salary; } stuff[100], *ps; Если описатели переменных отсутствуют, то структура определяет новый тип, например: struct Worker { char fio[30]; int date, code; double salary; }; Worker stuff[100], *ps; Имя структуры можно использовать сразу после его объявления (определение можно дать позднее) в тех случаях, когда компилятору не требуется знать размер структуры, например: struct List; // объявление структуры List struct Link { List *p; // указатель на структуру List Link *prev, *succ; // указатели на структуру Link }; struct List { /* определение структуры List */}; Это позволяет создавать связные списки структур. При инициализации структурызначения ее элементов перечисляются в фигурных скобках в порядке их описания: { char fio[30]; int date, code; double salary; } worker = {“Страусенко”, 31, 215, 3400.55}; Для переменных одного и того же структурного типа определена операция присваивания, при этом происходит поэлементное копирование. Структуру можно передавать в функцию и возвращать в качестве значения функции. Доступ к полям структурывыполняется с помощью операций выбора «.» (точка, применяется к имени структуры) и –> (применяется к указателю на структуру). Например: Worker worker, stuff[100], *ps; ps = &worker; strcpy (worker.fio, “Страусенко”); stuff[8].code = 215; ps->salary = 0.12;
4.7.4. Битовые поля
Битовые поля – это особый вид полей структуры. Они используются для плотной упаковки данных, например, флажков типа «да/нет». Минимальная адресуемая ячейка памяти – 1 байт, а для хранения флажка достаточно одного бита. При описании битового поля после имени через двоеточие указывается длина поля в битах (целая положительная константа): struct Options { bool centerX: l: bool centerY: l; unsigned int shadow: 2; unsigned int palette: 4; }; Битовые поля могут быть любого целого типа. Имя поля может отсутствовать, такие поля служат для выравнивания на аппаратную границу памяти. Доступ к полю осуществляется обычным способом - по имени. Адрес поля получить нельзя, однако в остальном битовые поля можно использовать точно так же, как обычные поля структуры. Следует учитывать, что операции с отдельными битами реализуются гораздо менее эффективно, чем с байтами и словами, так как компилятор должен генерировать для этого специальные коды, и экономия памяти под переменные оборачивается увеличением объема кода программы. Способ размещения битовых полей в памяти зависит от компилятора и аппаратуры.
4.7.5. Объединения
Объединение представляет собой специальный вид структуры, все поля которой располагаются по одному и тому же адресу. Формат его описания такой же, только вместо ключевого слова struct используется union. Длина объединения равна наибольшей из длин его полей. В переменной типа объединение хранится только одно значение, и ответственность за его правильное использование лежит на программисте. Объединения применяются для экономии памяти в тех случаях, когда известно, что более одного поля одновременно программе не потребуется. Другое применение – потребность в разной интерпретации одного и того же битового представления. Объединение часто используется в качестве поля структуры, при этом в структуру удобно включить дополнительное поле, определяющее, какой именно элемент объединения используется в данный момент. Имя объединения в структуре можно не указывать, в этом случае к его полям можно обращаться непосредственно. Например: #include <iostream.h> int main() { enum Paytype {CARD, CHECK}; { Paytype ptype; union { char card[25]; long check; }; } info; ……………………………………………………… switch (info.ptype) { case CARD: cout << “Оплата по карте: “ << info.card; break; case CHECK: cout << “Оплата чеком: “ << info.check; break; } return 0; } По сравнению со структурами на объединения налагаются некоторые ограничения: · объединение может инициализироваться только значением его первого элемента; · объединение не может содержать битовые поля; · объединение не может содержать виртуальные методы, конструкторы, деструкторы и операцию присваивания; · объединение не может входить в иерархию классов. Смысл двух последних из них разъяснится позднее.
{ char type [20]; int opt, rozn; char comm[40]; } mon; int kol = 0; // Количество записей в файле while (fgets (s, dl, fi)) { strncpy (mon.type, s, sizeof (mon.type) - 1); // Копирует не более n символов mon.type[ sizeof (mon.type) - 1] = ‘\0’; mon.opt = atoi (&s[iOpt]); // Преобразует строку в целое число mon.rozn = atoi (&s[iRozn]); strncpy (mon.comm, &s[iComm], sizeof (mon.comm)); fwrite (&mon, sizeof mon, 1, fo); // Запись одного блока длиной sizeof (mon) kol++; } fclose (fi);
int i; cin >> i; // Ввести номер записи (нумерация - с 0) if (i >= kol) {cout << “Такая запись не существует”; return 1;} fseek (fo, (sizeof mon)*i, SEEK_SET); // Уст-ка указателя файла на запись i от начала fread (&mon, sizeof mon, 1, fo); // Чтение одного блока cout << “mon.type “ << mon.type << “ opt “ << mon.opt << “ rozn “ << mon.rozn << endl; // Последний – символ перевода строки fclose (fo); return 0; }
4.8.3. Области действия и пространства имен
Объявляемый элемент (идентификатор) имеет область действия, которая определяется способом и местом объявления. Существует несколько категорий области действия: блок, файл, класс и именованная область. Область видимости совпадает с областью действия за исключением случаев, когда во вложенном блоке описана переменная с тем же именем. Тогда во вложенном блоке внешняя переменная невидима, хотя он входит в ее область действия. Описанные внутри блока идентификаторы локальны. Их область действия начинается в точке объявления и заканчивается в конце блока, время жизни – до выхода из блока. Исключение – статические переменные, время жизни которых начинается при первом объявлении и продолжается до конца работы программы. Аналогичными свойствами обладают переменные, объявленные в заголовке оператора for, а также формальные параметры функции. Идентификаторы, описанные в файле вне любого блока, функции, класса и пространства имен, имеют глобальную область действия, видимость и постоянное время жизни и могут использоваться с момента их определения. Элементы структур, объединений и классов действуют и видимы лишь в пределах класса. Они образуются при создании переменной данного класса и разрушаются при ее уничтожении (время жизни статических элементов класса постоянно!). Каждая область действия неявно определяет пространство имен. Пространство имен – это область, в пределах которой идентификатор должен быть уникальным. В разных пространствах имена могут совпадать, например: struct sNode { int Node; int i; } Node; Здесь нет противоречия, т.к. имена переменной и элемента структуры относятся к разным пространствам. Рассмотрим пространство глобальных имен. Функция автоматически видна во всех модулях программы. Для того чтобы сделать доступной в нескольких модулях константу или переменную, достаточно: · определить ее в единственном модуле как глобальную; · в других заинтересованных модулях объявить ее как внешнюю с помощью модификатора extern. Другой способ – поместить это объявление в заголовочный файл и включить его в нужные модули. В отличие от определения, объявление не создает переменную. Когда требуется ограничить область действия функции, константы или переменной файлом, в котором она определена, используется модификатор static. При описании типа также следует придерживаться правила одного определения: тип в программе должен быть определен один раз. Как правило, это делается в заголовочном файле, который затем подключается к модулям, использующим этот тип. Нарушение этого правила приводит к сложным ошибкам, поскольку компиляторы обычно не умеют сравнивать определения одноименных типов в различных файлах. C++ позволяет задавать явное пространство имен(именованную область) – область определения имен как часть глобальной области – с помощью оператора namespace. Именованные области служат для логического группирования объявлений и ограничения доступа к ним. При использовании единственной глобальной области видимости возможны совпадения и конфликты имен. Объявление пространства имен имеет вид namespace [ имя_области ] { /* Объявления */ } Именованная область может объявляться неоднократно, при этом последующие объявления в ней рассматриваются как дополнения предыдущих. Таким образом, именованная область может объявляться вне рамок одного файла. Например: namespace demo { int i = 1; int k = 0; void func1 (int); void func2 (int) { /*... */ } } namespace demo // Расширение { // int i = 2; Неверно – двойное определение void funcl (double); // Перегрузка void func2 (int); // Верно – повторное объявление } Если имя области не указано, компилятор задает его самостоятельно с помощью уникального идентификатора, различного для каждого модуля. Объявление идентификатора в такой области равнозначно его описанию как глобального с модификатором static. Помещать объявления в такую область можно для того, чтобы сохранить локальность кода. Нельзя получить доступ из одного файла к элементу неименованного пространства другого файла. В объявлении именованной области могут присутствовать как объявления, так и определения. Часто в нее помещают только объявления имен, а определяют их позднее с помощью оператора доступа к области видимости::. Например: void demo::func1(int) { /*... */} Этот синтаксис применяется для отделения реализации от интерфейса. Таким способом невозможно объявить новый элемент пространства имен. Идентификаторы, объявленные внутри области, являются видимыми с момента объявления. К ним можно явно обращаться с помощью имени области: demo::i = 100; demo::func2 (10); Если идентификатор часто используется вне своего пространства, можно объявить его доступным с помощью оператора using: using demo::i; После этого можно использовать имя без явного указания области. Если требуется сделать доступными все имена из некоторой области, используется оператор using namespace: using namespace demo; Операторы using и using namespace можно использовать внутри объявления именованной области, чтобы сделать в ней доступными объявления из другой области: namespace Department_of_Applied_Mathematics { using demo::i; ……………… } Имена, объявленные явно или оператором using, имеют приоритет по отношению к именам, объявленным с помощью оператора using namespace (это имеет значение при включении нескольких именованных областей, содержащих совпадающие имена). Короткие имена пространств имен могут войти в конфликт друг с другом, а длинные непрактичны при написании реального кода, поэтому разрешается вводить синонимы имен: namespace DAM = Department_of_App1ied_Mathematics; Многие элементы стандартной библиотеки определены в пространстве имен std. При этом, для обратной совместимости с языком C, имеются заголовочные файлы старого стиля (например, <math.h>), позволяющие работать без namespace, и новые (<cmath>), построенные на основе namespace. для студентов 5 курса специальности РАДИОФИЗИКА И ФИЗИЧЕСКАЯ ЭЛЕКТРОНИКА
Дата добавления: 2014-01-06; Просмотров: 280; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |