<?xml version="1.0" encoding="windows-1251"?>
<rss version="2.0">
<channel>
<title>FreeSource - Статьи/КраткоОбоВсём/Clang</title>
<link>http://freesource.info/wiki/Статьи/КраткоОбоВсём/Clang</link>
<description>History/revisions of FreeSource/Статьи/КраткоОбоВсём/Clang</description>
<language>en-us</language>
<item>
<title>2006-06-07 12:37:29</title>
<link>http://freesource.info/wiki/Stat'i/KratkoOboVsjom/Clang/show?time=2006-06-07+12%3A37%3A29</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a name=".stat_i.kratkoobovsjom.clang" href="http://freesource.info/wiki/Stat'i/KratkoOboVsjom/Clang&amp;" class="">/Статьи&amp;nbsp;/&amp;nbsp;Кратко&amp;nbsp;Обо&amp;nbsp;Всём&amp;nbsp;/&amp;nbsp;Clang&lt;/a> за &lt;a href="http://freesource.info/wiki/Stat'i/KratkoOboVsjom/Clang?time=2006-06-07+12%3A37%3A29">2006-06-07 12:37:29&lt;/a> и &lt;a href="http://freesource.info/wiki/Stat'i/KratkoOboVsjom/Clang">2007-03-17 19:19:28&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;strong>Примечание:&lt;/strong> Документ создаётся автором с&amp;nbsp;1998 г.&amp;nbsp;До&amp;nbsp;настоящего момента документ создавался в&amp;nbsp;среде LaTeX. На&amp;nbsp;текущий момент выполняется публикация документа в&amp;nbsp;среде Wiki с&amp;nbsp;последующим оформлением в&amp;nbsp;среде dockbook. LaTeX версию документа можно взять &lt;a href="ftp://diyaorg.dp.ua/books/C++ShortAll.pdf" target="_blank" title="" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/file.gif" alt="" border="0" />здесь&lt;/a> и&amp;nbsp;исходник &lt;a href="ftp://diyaorg.dp.ua/books/C++ShortAll.tex" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />здесь&lt;/a>. Документ оформляется в&amp;nbsp;среде Wiki для&amp;nbsp;привлечения к&amp;nbsp;его развитию программистов использующий язык C&amp;nbsp;и С++ в&amp;nbsp;повседневной практике и&amp;nbsp;желающих опубликовать свой опыт работы с&amp;nbsp;данными языками. Разрешается вносить изменения в&amp;nbsp;данный документ с&amp;nbsp;целью исправления обнаруженных ошибок или&amp;nbsp;с&amp;nbsp;целью его&amp;nbsp;дополнения.&lt;br />
&lt;!--notypo-->{{backlinks}}&lt;!--/notypo-->&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">&lt;strong>Примечание:&lt;/strong> Документ создаётся автором с&amp;nbsp;1998г. До&amp;nbsp;настоящего момента документ создавался в&amp;nbsp;среде LaTeX. На&amp;nbsp;текущий момент выполняется публикация документа в&amp;nbsp;среде Wiki с&amp;nbsp;последующим оформлением в&amp;nbsp;среде dockbook. LaTeX версию документа можно взять &lt;a href="ftp://diyaorg.dp.ua/books/C++ShortAll.pdf" target="_blank" title="" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/file.gif" alt="" border="0" />здесь&lt;/a> и&amp;nbsp;исходник &lt;a href="ftp://diyaorg.dp.ua/books/C++ShortAll.tex" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />здесь&lt;/a>. Документ оформляется в&amp;nbsp;среде Wiki для&amp;nbsp;привлечения к&amp;nbsp;его развитию программистов использующий язык C&amp;nbsp;и С++ в&amp;nbsp;повседневной практике и&amp;nbsp;желающих опубликовать свой опыт работы с&amp;nbsp;данными языками. Разрешается вносить изменения в&amp;nbsp;данный документ с&amp;nbsp;целью исправления обнаруженных ошибок или&amp;nbsp;с&amp;nbsp;целью его&amp;nbsp;дополнения.&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2006-05-30 18:02:39</title>
<link>http://freesource.info/wiki/Stat'i/KratkoOboVsjom/Clang/show?time=2006-05-30+18%3A02%3A39</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/Stat'i/KratkoOboVsjom/Clang&amp;" class="">/Статьи&amp;nbsp;/&amp;nbsp;Кратко&amp;nbsp;Обо&amp;nbsp;Всём&amp;nbsp;/&amp;nbsp;Clang&lt;/a> за &lt;a href="http://freesource.info/wiki/Stat'i/KratkoOboVsjom/Clang?time=2006-05-30+18%3A02%3A39">2006-05-30 18:02:39&lt;/a> и &lt;a href="http://freesource.info/wiki/Stat'i/KratkoOboVsjom/Clang?time=2006-06-07+12%3A37%3A29">2006-06-07 12:37:29&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;strong>Автор:&lt;/strong> &lt;a name=".romansavochenko" href="http://freesource.info/wiki/RomanSavochenko&amp;" class="" title="Roman&amp;nbsp;Savochenko">Roman Savochenko&lt;/a>&lt;br />
&lt;strong>Примечание:&lt;/strong> Документ создаётся автором с&amp;nbsp;1998г. До&amp;nbsp;настоящего момента документ создавался в&amp;nbsp;среде LaTeX. На&amp;nbsp;текущий момент выполняется публикация документа в&amp;nbsp;среде Wiki с&amp;nbsp;последующим оформлением в&amp;nbsp;среде dockbook. LaTeX версию документа можно взять &lt;a href="ftp://diyaorg.dp.ua/books/C++ShortAll.pdf" target="_blank" title="" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/file.gif" alt="" border="0" />здесь&lt;/a> и&amp;nbsp;исходник &lt;a href="ftp://diyaorg.dp.ua/books/C++ShortAll.tex" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />здесь&lt;/a>. Документ оформляется в&amp;nbsp;среде Wiki для&amp;nbsp;привлечения к&amp;nbsp;его развитию программистов использующий язык C&amp;nbsp;и С++ в&amp;nbsp;повседневной практике и&amp;nbsp;желающих опубликовать свой опыт работы с&amp;nbsp;данными языками. Разрешается вносить изменения в&amp;nbsp;данный документ с&amp;nbsp;целью исправления обнаруженных ошибок или&amp;nbsp;с&amp;nbsp;целью его&amp;nbsp;дополнения.&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">&lt;strong>Автор:&lt;/strong> &lt;a  href="http://freesource.info/wiki/RomanSavochenko&amp;" class="">/Roman&amp;nbsp;Savochenko&lt;/a>&lt;br />
&lt;strong>Примечание:&lt;/strong> Документ создаётся автором с&amp;nbsp;1998г. До&amp;nbsp;настоящего момента документ создавался в&amp;nbsp;среде LaTeX. На&amp;nbsp;текущий момент выполняется публикация документа в&amp;nbsp;среде Wiki с&amp;nbsp;последующим оформлением в&amp;nbsp;среде dockbook. LaTeX версию документа можно взять &lt;a href="ftp://diyaorg.dp.ua/books/C++ShortAll.pdf" target="_blank" title="" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/file.gif" alt="" border="0" />здесь&lt;/a> и&amp;nbsp;исходник &lt;a href="ftp://diyaorg.dp.ua/books/C++ShortAll.tex" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />здесь&lt;/a>. Документ оформляется в&amp;nbsp;среде WIKI для&amp;nbsp;привлечения к&amp;nbsp;его развитию программистов использующий язык C&amp;nbsp;и С++ в&amp;nbsp;повседневной практике и&amp;nbsp;желающих опубликовать свой опыт работы с&amp;nbsp;данными языками. Разрешается вносить изменения в&amp;nbsp;данный документ с&amp;nbsp;целью исправления обнаруженных ошибок или&amp;nbsp;с&amp;nbsp;целью его&amp;nbsp;дополнения.&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2006-04-26 11:39:32</title>
<link>http://freesource.info/wiki/Stat'i/KratkoOboVsjom/Clang/show?time=2006-04-26+11%3A39%3A32</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/Stat'i/KratkoOboVsjom/Clang&amp;" class="">/Статьи&amp;nbsp;/&amp;nbsp;Кратко&amp;nbsp;Обо&amp;nbsp;Всём&amp;nbsp;/&amp;nbsp;Clang&lt;/a> за &lt;a href="http://freesource.info/wiki/Stat'i/KratkoOboVsjom/Clang?time=2006-04-26+11%3A39%3A32">2006-04-26 11:39:32&lt;/a> и &lt;a href="http://freesource.info/wiki/Stat'i/KratkoOboVsjom/Clang?time=2006-05-30+18%3A02%3A39">2006-05-30 18:02:39&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;a name="h1524-1">&lt;/a>&lt;h1>C/C++ &amp;mdash; кратко обо&amp;nbsp;всём. &lt;/h1>
&lt;strong>Автор:&lt;/strong> &lt;a  href="http://freesource.info/wiki/RomanSavochenko&amp;" class="">/Roman&amp;nbsp;Savochenko&lt;/a>&lt;br />
&lt;strong>Примечание:&lt;/strong> Документ создаётся автором с&amp;nbsp;1998г. До&amp;nbsp;настоящего момента документ создавался в&amp;nbsp;среде LaTeX. На&amp;nbsp;текущий момент выполняется публикация документа в&amp;nbsp;среде Wiki с&amp;nbsp;последующим оформлением в&amp;nbsp;среде dockbook. LaTeX версию документа можно взять &lt;a href="ftp://diyaorg.dp.ua/books/C++ShortAll.pdf" target="_blank" title="" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/file.gif" alt="" border="0" />здесь&lt;/a> и&amp;nbsp;исходник &lt;a href="ftp://diyaorg.dp.ua/books/C++ShortAll.tex" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />здесь&lt;/a>. Документ оформляется в&amp;nbsp;среде WIKI для&amp;nbsp;привлечения к&amp;nbsp;его развитию программистов использующий язык C&amp;nbsp;и С++ в&amp;nbsp;повседневной практике и&amp;nbsp;желающих опубликовать свой опыт работы с&amp;nbsp;данными языками. Разрешается вносить изменения в&amp;nbsp;данный документ с&amp;nbsp;целью исправления обнаруженных ошибок или&amp;nbsp;с&amp;nbsp;целью его&amp;nbsp;дополнения.&lt;br />
&lt;!--notypo-->{{TableOfContents page="" title="" numerate=""}}&lt;!--/notypo-->&lt;br />
&lt;!--notypo-->{{Include file="!/part1"}}&lt;!--/notypo-->&lt;br />
&lt;!--notypo-->{{Include file="!/part2"}}&lt;!--/notypo-->&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2006-03-04 11:30:03</title>
<link>http://freesource.info/wiki/Stat'i/KratkoOboVsjom/Clang/show?time=2006-03-04+11%3A30%3A03</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/Stat'i/KratkoOboVsjom/Clang&amp;" class="">/Статьи&amp;nbsp;/&amp;nbsp;Кратко&amp;nbsp;Обо&amp;nbsp;Всём&amp;nbsp;/&amp;nbsp;Clang&lt;/a> за &lt;a href="http://freesource.info/wiki/Stat'i/KratkoOboVsjom/Clang?time=2006-03-04+11%3A30%3A03">2006-03-04 11:30:03&lt;/a> и &lt;a href="http://freesource.info/wiki/Stat'i/KratkoOboVsjom/Clang?time=2006-04-26+11%3A39%3A32">2006-04-26 11:39:32&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">&lt;a name="h1524-1">&lt;/a>&lt;h1>C/C++ &amp;mdash; кратко обо&amp;nbsp;всём. &lt;/h1>
&lt;strong>Автор:&lt;/strong> &lt;a  href="http://freesource.info/wiki/RomanSavochenko&amp;" class="">/Roman&amp;nbsp;Savochenko&lt;/a>&lt;br />
&lt;strong>Примечание:&lt;/strong> Документ создаётся автором с&amp;nbsp;1998г. До&amp;nbsp;настоящего момента документ создавался в&amp;nbsp;среде LaTeX. На&amp;nbsp;текущий момент выполняется публикация документа в&amp;nbsp;среде Wiki с&amp;nbsp;последующим оформлением в&amp;nbsp;среде dockbook. LaTeX версию документа можно взять &lt;a href="ftp://diyaorg.dp.ua/books/C++ShortAll.pdf" target="_blank" title="" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/file.gif" alt="" border="0" />здесь&lt;/a> и&amp;nbsp;исходник &lt;a href="ftp://diyaorg.dp.ua/books/C++ShortAll.tex" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />здесь&lt;/a>. Документ оформляется в&amp;nbsp;среде WIKI для&amp;nbsp;привлечения к&amp;nbsp;его развитию программистов использующий язык C&amp;nbsp;и С++ в&amp;nbsp;повседневной практике и&amp;nbsp;желающих опубликовать свой опыт работы с&amp;nbsp;данными языками. Разрешается вносить изменения в&amp;nbsp;данный документ с&amp;nbsp;целью исправления обнаруженных ошибок или&amp;nbsp;с&amp;nbsp;целью его&amp;nbsp;дополнения.&lt;br />
&lt;!--notypo-->{{TableOfContents page="" title="" numerate=""}}&lt;!--/notypo-->&lt;a name="h1524-2">&lt;/a>&lt;h2>1 Язык C/C++&lt;/h2>&lt;a name="h1524-3">&lt;/a>&lt;h3>1.1 Ключевые слова С/С++&lt;/h3>
Таблица 1. &lt;strong>Ключевые слова С/С++&lt;/strong>&lt;br />
&lt;table class="usertable" border="1">
&lt;tr class="userrow">&lt;td class="usercell"> &lt;/td>&lt;td class="usercell"> &lt;/td>&lt;td class="usercell"> &lt;/td>&lt;td  class="usercell"> &lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell" colspan="4">&lt;div style="float:center; text-align:center">&lt;strong>Ключевые слова для&amp;nbsp;С/С++&lt;/strong>&lt;/div>&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">auto&lt;/td>&lt;td class="usercell">break&lt;/td>&lt;td class="usercell">case&lt;/td>&lt;td  class="usercell">char&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">const&lt;/td>&lt;td class="usercell">continue&lt;/td>&lt;td class="usercell">default&lt;/td>&lt;td  class="usercell">do&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">double&lt;/td>&lt;td class="usercell">else&lt;/td>&lt;td class="usercell">enum&lt;/td>&lt;td  class="usercell">extern&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">float&lt;/td>&lt;td class="usercell">for&lt;/td>&lt;td class="usercell">goto&lt;/td>&lt;td  class="usercell">if&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">int&lt;/td>&lt;td class="usercell">long&lt;/td>&lt;td class="usercell">register&lt;/td>&lt;td  class="usercell">return&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">short&lt;/td>&lt;td class="usercell">signed&lt;/td>&lt;td class="usercell">sizeof&lt;/td>&lt;td  class="usercell">static&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">struct&lt;/td>&lt;td class="usercell">switch&lt;/td>&lt;td class="usercell">typedef&lt;/td>&lt;td  class="usercell">union&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">unsigned&lt;/td>&lt;td class="usercell">void&lt;/td>&lt;td class="usercell">volatile&lt;/td>&lt;td  class="usercell">while&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell" colspan="4">&lt;div style="float:center; text-align:center">&lt;strong>Ключевые слова только для&amp;nbsp;С++&lt;/strong>&lt;/div>&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">asm&lt;/td>&lt;td class="usercell">bool&lt;/td>&lt;td class="usercell">catch&lt;/td>&lt;td  class="usercell">class&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">const_cast&lt;/td>&lt;td class="usercell">delete&lt;/td>&lt;td class="usercell">dynamic_cast&lt;/td>&lt;td  class="usercell">explicit&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">false&lt;/td>&lt;td class="usercell">friend&lt;/td>&lt;td class="usercell">inline&lt;/td>&lt;td  class="usercell">mutable&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">namespace&lt;/td>&lt;td class="usercell">new&lt;/td>&lt;td class="usercell">operator&lt;/td>&lt;td  class="usercell">private&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">protected&lt;/td>&lt;td class="usercell">public&lt;/td>&lt;td class="usercell">reintepret_cast&lt;/td>&lt;td  class="usercell">static_cast&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">template&lt;/td>&lt;td class="usercell">this&lt;/td>&lt;td class="usercell">throw&lt;/td>&lt;td  class="usercell">true&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">try&lt;/td>&lt;td class="usercell">typeid&lt;/td>&lt;td class="usercell">typename&lt;/td>&lt;td  class="usercell">using&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">virtual&lt;/td>&lt;td class="usercell" colspan="3">wchar_t &lt;/td>&lt;/tr>
&lt;/table>&lt;a name="h1524-4">&lt;/a>&lt;h3>1.2 Постоянные&lt;/h3>
Таблица 2. &lt;strong>Постоянные языка С/С++&lt;/strong>&lt;br />
&lt;table class="usertable" border="1">
&lt;tr class="userrow">&lt;td class="usercell"> &lt;/td>&lt;td  class="usercell"> &lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell" colspan="2">&lt;div style="float:center; text-align:center">&lt;strong>Целые константы&lt;/strong>&lt;/div>&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">Десятичные&lt;/td>&lt;td  class="usercell">цифры &lt;span class="nobr">0&amp;ndash;9&lt;/span>;(12, 111, 956)&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">Восьмеричные&lt;/td>&lt;td  class="usercell">цифры &lt;span class="nobr">0&amp;ndash;7&lt;/span>;(012=10, 011=73, 076=62)&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">Шестнадцатеричные&lt;/td>&lt;td  class="usercell">цифры &lt;span class="nobr">0&amp;ndash;9&lt;/span>,буквы A-F или&amp;nbsp;a-f(0x12=18, 0x2f=47, 0XA3=163)&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell" colspan="2">&lt;div style="float:center; text-align:center">&lt;strong>Длинные целые константы&lt;/strong>&lt;/div>&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">Десятичная&lt;/td>&lt;td  class="usercell">12l=12, 956L=956;&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">Восьмеричные&lt;/td>&lt;td  class="usercell">012l=10, 076L=62;&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">Шестнадцатеричные&lt;/td>&lt;td  class="usercell">0x12l=18, 0XA3L=163.&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell" colspan="2">&lt;div style="float:center; text-align:center">&lt;strong>Беззнаковые целые константы&lt;/strong>&lt;/div>&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">Десятичная&lt;/td>&lt;td  class="usercell">12u=12, 956U=956;&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">Восьмеричные&lt;/td>&lt;td  class="usercell">012u=10, 076U=62;&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">Шестнадцатеричные&lt;/td>&lt;td  class="usercell">0x12u=18, 0XA3U=163.&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell" colspan="2">&lt;div style="float:center; text-align:center">&lt;strong>Константы с&amp;nbsp;плавающей точкой&lt;/strong>&lt;/div>&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell" colspan="2">Всегда представляются типами float, double и&amp;nbsp;long double: 345. = 345; 2.1e5 = 210000; .123E3fL = 123; 4037e-5l = .04037&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell" colspan="2">&lt;div style="float:center; text-align:center">&lt;strong>Символьные константы&lt;/strong>&lt;/div>&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell" colspan="2">Состоит из&amp;nbsp;одного символа кода ASCII, заключеного в&amp;nbsp;апострофы: 'A'; 'a'; '7'; '$'.&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell" colspan="2">Многобайтовые символы: L'ab'.&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell" colspan="2">Специальные символы:&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">\a&lt;/td>&lt;td  class="usercell">звонок&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">\b&lt;/td>&lt;td  class="usercell">возврат на&amp;nbsp;один символ назад&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">\f&lt;/td>&lt;td  class="usercell">перевод страницы&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">\n&lt;/td>&lt;td  class="usercell">новая строка&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">\r&lt;/td>&lt;td  class="usercell">перевод каретки&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">\t&lt;/td>&lt;td  class="usercell">горизонтальная табуляция&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">\v&lt;/td>&lt;td  class="usercell">вертикальная табуляция&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">\'&lt;/td>&lt;td  class="usercell">апостроф&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">\"&lt;/td>&lt;td  class="usercell">двойные кавычки&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">\\&lt;/td>&lt;td  class="usercell">обратная дробная черта&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">\?&lt;/td>&lt;td  class="usercell">вопросительный знак&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">\23&lt;/td>&lt;td  class="usercell">символ задан десятичным числом&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">\0x23&lt;/td>&lt;td  class="usercell">символ задан шестнадцатеричным числом&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">\023&lt;/td>&lt;td  class="usercell">символ задан восьмеричным числом&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell" colspan="2">&lt;div style="float:center; text-align:center">&lt;strong>Строковые константы (литералы)&lt;/strong>&lt;/div>&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell" colspan="2">Представляет последовательность символов кода ASCII, заключённой в&amp;nbsp;кавычки: &amp;laquo;строка&amp;raquo;.&lt;/td>&lt;/tr>
&lt;/table>&lt;a name="h1524-5">&lt;/a>&lt;h3>1.3 Переменные&lt;/h3>&lt;a name="h1524-6">&lt;/a>&lt;h4>1.3.1 Основные типы переменных&lt;/h4>
Таблица 3. &lt;strong>Основные типы переменных языка С/С++&lt;/strong>&lt;br />
&lt;table class="usertable" border="1">
&lt;tr class="userrow">&lt;td class="usercell">&lt;div style="float:center; text-align:center">&lt;strong>Тип (байт_сист)&lt;/strong>&lt;/div>&lt;/td>&lt;td  class="usercell">&lt;div style="float:center; text-align:center">&lt;strong>Диапазон значений&lt;/strong>&lt;/div>&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">bool (1)&lt;/td>&lt;td  class="usercell">false=0; true=1&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">char (1)&lt;/td>&lt;td  class="usercell">-128...127&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">int (2_16)&lt;/td>&lt;td  class="usercell">-32.768...32.767&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">int (4_32)&lt;/td>&lt;td  class="usercell">-2&lt;sup>31&lt;/sup> ...2&lt;sup>31&lt;/sup>&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">short &lt;/td>&lt;td  class="usercell">-32.768...32.767&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">long (4_32)&lt;/td>&lt;td  class="usercell">-2&lt;sup>31&lt;/sup> ...2&lt;sup>31&lt;/sup>&lt;/td>&lt;/tr> 
&lt;tr class="userrow">&lt;td class="usercell">long (8_64)&lt;/td>&lt;td  class="usercell">-2&lt;sup>63&lt;/sup> ...2&lt;sup>63&lt;/sup>&lt;/td>&lt;/tr> 
&lt;tr class="userrow">&lt;td class="usercell">long long (8)&lt;/td>&lt;td  class="usercell">-2&lt;sup>63&lt;/sup> ...2&lt;sup>63&lt;/sup>&lt;/td>&lt;/tr> 
&lt;tr class="userrow">&lt;td class="usercell">unsigned char (1)&lt;/td>&lt;td  class="usercell">0 ...255&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">unsigned (2_16)&lt;/td>&lt;td  class="usercell">0 ...65535&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">unsigned (4_32)&lt;/td>&lt;td  class="usercell">0 ...2&lt;sup>32&lt;/sup>&lt;/td>&lt;/tr> 
&lt;tr class="userrow">&lt;td class="usercell">unsigned short (2)&lt;/td>&lt;td  class="usercell">0 ...65535&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">unsigned long (4_32)&lt;/td>&lt;td  class="usercell">0 ...2&lt;sup>32&lt;/sup>&lt;/td>&lt;/tr> 
&lt;tr class="userrow">&lt;td class="usercell">unsigned long (8_64)&lt;/td>&lt;td  class="usercell">0 ...2&lt;sup>64&lt;/sup>&lt;/td>&lt;/tr> 
&lt;tr class="userrow">&lt;td class="usercell">unsigned long long (8)&lt;/td>&lt;td  class="usercell">0 ...2&lt;sup>64&lt;/sup>&lt;/td>&lt;/tr> 
&lt;tr class="userrow">&lt;td class="usercell">enum (2_16)&lt;/td>&lt;td  class="usercell">32.768...32.767&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">enum (4_32)&lt;/td>&lt;td  class="usercell">-2&lt;sup>31&lt;/sup> ...2&lt;sup>31&lt;/sup>&lt;/td>&lt;/tr> 
&lt;tr class="userrow">&lt;td class="usercell">float (4)&lt;/td>&lt;td  class="usercell">3.4*10&lt;sup>38&lt;/sup> (7 знаков)&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">double (8)&lt;/td>&lt;td  class="usercell">3.4*10&lt;sup>308&lt;/sup> (15 знаков)&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">long double (12)&lt;/td>&lt;td  class="usercell">3.4*10&lt;sup>4932&lt;/sup> (19 знаков)&lt;/td>&lt;/tr>
&lt;/table>&lt;a name="h1524-7">&lt;/a>&lt;h4>1.3.2 Перечислимый тип&amp;nbsp;(enum)&lt;/h4>
Определяет тип&amp;nbsp;enum и-или enum переменную. Если фигурные скобки заданы то&amp;nbsp;ключевое слово enum объявляет тип&amp;nbsp;enum, состоящий из&amp;nbsp;набора именованных целочисленных констант. Переменная типа enum хранит одно из&amp;nbsp;значений, определенных типом enum. Таким образом, enum переменная всегда имеет тип&amp;nbsp;int. Enum может использоваться, для&amp;nbsp;объявления констант, которые могут использовать имена без&amp;nbsp;объявления переменных для&amp;nbsp;них, как&amp;nbsp;показано в&amp;nbsp;следующем примере: &lt;br />
&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
enum&amp;nbsp;DAYS&amp;nbsp;&lt;br />{&lt;br />&amp;nbsp;&amp;nbsp;saturday,&amp;nbsp;&lt;br />&amp;nbsp;&amp;nbsp;sunday&amp;nbsp;=&amp;nbsp;10,&lt;br />&amp;nbsp;&amp;nbsp;monday,&amp;nbsp;&lt;br />&amp;nbsp;&amp;nbsp;tuesday,&lt;br />&amp;nbsp;&amp;nbsp;wednesday,&lt;br />&amp;nbsp;&amp;nbsp;thursday,&lt;br />&amp;nbsp;&amp;nbsp;friday&lt;br />}&amp;nbsp;today;&amp;nbsp;&lt;br />enum&amp;nbsp;DAYS&amp;nbsp;yesterday&amp;nbsp;=&amp;nbsp;monday;&lt;br />DAYS&amp;nbsp;yesterday&amp;nbsp;=&amp;nbsp;monday;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;C++&lt;br />int&amp;nbsp;tomorrow&amp;nbsp;=&amp;nbsp;wednesday;&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;a name="h1524-8">&lt;/a>&lt;h4>1.3.3 Структура (struct)&lt;/h4>
Объявляет тип&amp;nbsp;структуры и-или переменную структуры. Если заданы фигурные скобки то&amp;nbsp;определяется структурный тип. Безымянные разрядные поля могут использоваться для&amp;nbsp;выравнивания. &lt;br />
Если фигурные скобки не&amp;nbsp;заданы то&amp;nbsp;ключевое слово struct используется для&amp;nbsp;определения переменной структуры. В&amp;nbsp;языке C++ добавлена возможность использования в&amp;nbsp;структуре ключевых слов public, private, protect: &lt;br />
&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
struct&amp;nbsp;my_str;&amp;nbsp;&amp;nbsp;//my_str&amp;nbsp;-&amp;nbsp;как&amp;nbsp;прототип,&amp;nbsp;определена&amp;nbsp;позже&amp;nbsp;&lt;br />struct&amp;nbsp;POINT&amp;nbsp;&amp;nbsp;&lt;br />{&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;int&amp;nbsp;x;&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;int&amp;nbsp;y;&lt;br />}&amp;nbsp;here&amp;nbsp;=&amp;nbsp;{&amp;nbsp;20,&amp;nbsp;40&amp;nbsp;};&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br />struct&amp;nbsp;POINT&amp;nbsp;there,&amp;nbsp;*ther1;&lt;br />ther1-&amp;gt;x&amp;nbsp;=&amp;nbsp;2;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br />struct&amp;nbsp;CELL&amp;nbsp;&amp;nbsp;{&amp;nbsp;//Выбор&amp;nbsp;количества&amp;nbsp;битов&amp;nbsp;для&amp;nbsp;элементов&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;unsigned&amp;nbsp;character&amp;nbsp;&amp;nbsp;:&amp;nbsp;8;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;00000000&amp;nbsp;????????&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;unsigned&amp;nbsp;foreground&amp;nbsp;:&amp;nbsp;3;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;00000???&amp;nbsp;00000000&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;unsigned&amp;nbsp;intensity&amp;nbsp;&amp;nbsp;:&amp;nbsp;1;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;0000?000&amp;nbsp;00000000&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;unsigned&amp;nbsp;blink&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;1;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;000?0000&amp;nbsp;00000000&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;unsigned&amp;nbsp;:1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;заполнитель&lt;br />}&amp;nbsp;screen[25][80];&amp;nbsp;&lt;br />POINT&amp;nbsp;example(POINT&amp;nbsp;there)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br />{&amp;nbsp;&lt;br />&amp;nbsp;&amp;nbsp;there.x&amp;nbsp;=&amp;nbsp;3;&lt;br />&amp;nbsp;&amp;nbsp;there.y&amp;nbsp;=&amp;nbsp;5;&lt;br />};&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;a name="h1524-9">&lt;/a>&lt;h4>1.3.4 Тип&amp;nbsp;объединение (union)&lt;/h4>
Объявляет тип&amp;nbsp;&amp;ndash; объединение, и-или переменную объединения. Если фигурные скобки заданы то, union объявляет тип&amp;nbsp;объединения, состоящий из&amp;nbsp;последовательности переменных, значения (известных как&amp;nbsp;элементы объединения) которых могут иметь различные типы. Переменная типа union может содержать один элемент любого типа, определенного объединением. Размером объединения является размер самого большого типа в&amp;nbsp;объединении. Переменная может быть определена, указанием ее&amp;nbsp;имени после заключительной фигурной скобки. Если фигурные скобки не&amp;nbsp;даны, то&amp;nbsp;ключевое слово union используется, для&amp;nbsp;определения переменной объединения. Например: &lt;br />
&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
union&amp;nbsp;UNKNOWN&amp;nbsp;&amp;nbsp;&lt;br />{&lt;br />&amp;nbsp;&amp;nbsp;char&amp;nbsp;&amp;nbsp;&amp;nbsp;ch;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br />&amp;nbsp;&amp;nbsp;int&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;i;&lt;br />&amp;nbsp;&amp;nbsp;long&amp;nbsp;&amp;nbsp;&amp;nbsp;l;&lt;br />&amp;nbsp;&amp;nbsp;float&amp;nbsp;&amp;nbsp;f;&lt;br />&amp;nbsp;&amp;nbsp;double&amp;nbsp;d;&amp;nbsp;&lt;br />}&amp;nbsp;var1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;Variable&amp;nbsp;of&amp;nbsp;type&amp;nbsp;UNKNOWN&lt;br />union&amp;nbsp;UNKNOWN&amp;nbsp;var2;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;Variable&amp;nbsp;of&amp;nbsp;type&amp;nbsp;UNKNOWN&lt;br />var1.i&amp;nbsp;=&amp;nbsp;6;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;Use&amp;nbsp;variable&amp;nbsp;as&amp;nbsp;integer&lt;br />var2.d&amp;nbsp;=&amp;nbsp;5.327;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;Use&amp;nbsp;variable&amp;nbsp;as&amp;nbsp;double&lt;br />C++&amp;nbsp;Поддерживает&amp;nbsp;анонимные&amp;nbsp;объединения:&amp;nbsp;&lt;br />union&amp;nbsp;&lt;br />{&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;int&amp;nbsp;my_data;&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;float&amp;nbsp;this_data;&amp;nbsp;&amp;nbsp;&lt;br />};&lt;br />my_data=3&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;a name="h1524-10">&lt;/a>&lt;h4>1.3.5 Пустой тип&amp;nbsp;(void)&lt;/h4>
Если этот тип&amp;nbsp;используется как&amp;nbsp;тип возврата из&amp;nbsp;функции то&amp;nbsp;функция не&amp;nbsp;возвращает значений. Если используется как&amp;nbsp;список параметров функции, то&amp;nbsp;входные параметры у&amp;nbsp;функции отсутствуют. Если используется указатель на&amp;nbsp;тип void то&amp;nbsp;его при&amp;nbsp;использовании необходимо приводить к&amp;nbsp;конкретному типу.&lt;a name="h1524-11">&lt;/a>&lt;h4>1.3.6 Сокращенный тип&amp;nbsp;(typedef)&lt;/h4>
Описание typedef используется для&amp;nbsp;замены сложных типов данных или&amp;nbsp;создания своих специфических типов данных:&lt;br />
&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
typedef&amp;nbsp;&amp;nbsp;unsigned&amp;nbsp;long&amp;nbsp;int&amp;nbsp;ULINT;&lt;br />ULINT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;my_const;&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;a name="h1524-12">&lt;/a>&lt;h4>1.3.7 Тип&amp;nbsp;класс (class)&lt;/h4>&lt;a name="h1524-13">&lt;/a>&lt;h5>Общие понятия&lt;/h5>
В&amp;nbsp;С++ добавлен класс &amp;ndash; расширение понятия структуры. Память при&amp;nbsp;определении класса не&amp;nbsp;выделяется. Класс имеет имя&amp;nbsp;(тег) и&amp;nbsp;состоит из&amp;nbsp;полей, представляющих его&amp;nbsp;члены. В&amp;nbsp;С++ допускается использование вложенных классов. Ключевое слово public определяет те&amp;nbsp;члены класса, к&amp;nbsp;которым имеется прямой доступ. Ключевое слово private используется для&amp;nbsp;сокрытия определенных деталей класса, которые доступны только функциям членам класса и&amp;nbsp;дружественным функциям. Все&amp;nbsp;члены класса по&amp;nbsp;умолчанию считаются приватными. Ключевое слово protected используется для&amp;nbsp;открытия доступа только членам этого класса и&amp;nbsp;членам производных от&amp;nbsp;него классов. Функции класса могут определятся как&amp;nbsp;внутри(увеличивается объем программы и&amp;nbsp;скорость выполнения) так&amp;nbsp;и&amp;nbsp;вне(уменьшается объем программы и&amp;nbsp;скорость выполнения) его&amp;nbsp;тела. При&amp;nbsp;создании в&amp;nbsp;программе объекта экземпляра, его&amp;nbsp;членам присваиваются некоторые начальные значения эту&amp;nbsp;операцию выполняет специальная функция &amp;ndash; конструктор имя&amp;nbsp;которой совпадает с&amp;nbsp;именем класса. Для&amp;nbsp;освобождения памяти и&amp;nbsp;других операций при&amp;nbsp;закрытии класса используется деструктор имя&amp;nbsp;которого совпадает с&amp;nbsp;именем класса и&amp;nbsp;с добавлением впереди символа "&amp;#126;".&lt;br />
Для&amp;nbsp;присваивания переменной одного класса переменной другого класса можно в&amp;nbsp;классе использовать оператор: operator char *() в&amp;nbsp;котором описывается процедура преобразования одной переменной в&amp;nbsp;другую что&amp;nbsp;позволит в&amp;nbsp;дальнейшем упростить обмен: title=big_book.&lt;br />
Одинаковые классы допускают копирования содержимого из&amp;nbsp;одного класса в&amp;nbsp;другой. &lt;br />
Конструкторы с&amp;nbsp;одним параметром определённого типа могут использоваться для&amp;nbsp;неявного преобразования типов (от типа параметра к&amp;nbsp;типу класса). Для&amp;nbsp;исключения этого нужно использовать директиву &lt;strong>explicit&lt;/strong>.&lt;br />
&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
class&amp;nbsp;book&amp;nbsp;&lt;br />{&lt;br />&amp;nbsp;&amp;nbsp;public:&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;char&amp;nbsp;title[256];&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;char&amp;nbsp;author[64];&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;book(char&amp;nbsp;*title="A",&amp;nbsp;char&amp;nbsp;*autor="B",&amp;nbsp;&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;char&amp;nbsp;*publisher=&amp;nbsp;"C")&amp;nbsp;&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;strcpy(book::title,&amp;nbsp;title);&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;strcpy(book::author,&amp;nbsp;author);&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;strcpy(book::publisher,&amp;nbsp;publisher);&amp;nbsp;&amp;nbsp;&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&amp;nbsp;&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;~book(void);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;char&amp;nbsp;*get_price(*publisher)&amp;nbsp;{*publisher};&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;char&amp;nbsp;show_title(void);&amp;nbsp;&lt;br />&amp;nbsp;&amp;nbsp;private:&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;char&amp;nbsp;publisher[256];&lt;br />};&lt;br />book&amp;nbsp;diary;&lt;br />book::~book(void)&amp;nbsp;&lt;br />{&lt;br />&amp;nbsp;&amp;nbsp;cout&amp;nbsp;&amp;lt;&amp;lt;&amp;nbsp;"Уничтожение&amp;nbsp;экземпляра"&amp;nbsp;&amp;lt;&amp;lt;&amp;nbsp;title&amp;nbsp;&amp;lt;&amp;lt;&amp;nbsp;'\n';&amp;nbsp;&amp;nbsp;};&lt;br />&amp;nbsp;&amp;nbsp;void&amp;nbsp;book::show_title(void)&amp;nbsp;{cout&amp;nbsp;&amp;lt;&amp;lt;&amp;nbsp;title&amp;nbsp;&amp;lt;&amp;lt;&amp;nbsp;'\n';&amp;nbsp;};&lt;br />&amp;nbsp;&amp;nbsp;book&amp;nbsp;tips("Jamsa's&amp;nbsp;1001&amp;nbsp;C/C++",&amp;nbsp;"Jamsa",&amp;nbsp;"Jamsa&amp;nbsp;Press");&lt;br />}&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;a name="h1524-14">&lt;/a>&lt;h5>Дружественные классы и&amp;nbsp;члены&lt;/h5>
Дружественные классы &amp;ndash; friend указывает на&amp;nbsp;класс который может использовать private члены текущего класса. Есть возможность узкого указания на&amp;nbsp;член класса friend имеющего доступ к&amp;nbsp;private членам текущего класса. Кроме того есть возможность создавать взаимные friend &amp;ndash; классы. Дружественная функция может не&amp;nbsp;принадлежать ни&amp;nbsp;какому классу т.е быть автономной. &lt;br />
&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
class&amp;nbsp;book&amp;nbsp;&lt;br />{&lt;br />&amp;nbsp;&amp;nbsp;public:&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;char&amp;nbsp;title[256];&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;char&amp;nbsp;author[64];&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;friend&amp;nbsp;class&amp;nbsp;Reader::show_reader(void);&lt;br />&amp;nbsp;&amp;nbsp;private:&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;char&amp;nbsp;publisher[256];&lt;br />};&lt;br />class&amp;nbsp;Reader&amp;nbsp;{&lt;br />&amp;nbsp;&amp;nbsp;public:&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Reader&amp;nbsp;(char&amp;nbsp;*name)&amp;nbsp;{strcpy(Reader::name,&amp;nbsp;name);&amp;nbsp;};&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void&amp;nbsp;show_reader(class&amp;nbsp;book&amp;nbsp;book)&amp;nbsp;&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{cout&amp;lt;&amp;lt;"Читатель"&amp;lt;&amp;lt;name&amp;lt;&amp;lt;'&amp;nbsp;'&amp;lt;&amp;lt;&amp;nbsp;"Книга"&amp;lt;&amp;lt;book.title;&amp;nbsp;};&amp;nbsp;&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;class&amp;nbsp;book&amp;nbsp;tips[23];&lt;br />&amp;nbsp;&amp;nbsp;private:&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;char&amp;nbsp;name[64];&lt;br />};&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;a name="h1524-15">&lt;/a>&lt;h5>Наследование&lt;/h5>
Наследование это&amp;nbsp;когда производный класс наследует свойства родительского класса. Наследование обеспечивает возможность рассмотрения порождённого объекта как&amp;nbsp;базового (но не&amp;nbsp;наоборот). Наследование может быть множественным. В&amp;nbsp;производном классе допускается переопределение функций базового. Для&amp;nbsp;обращения к&amp;nbsp;перегруженной функции базового класса можно записать d.TBase::getData();, где&amp;nbsp;TBase &amp;ndash; имя&amp;nbsp;базового класса. Наследования бывают: &lt;br />
&lt;ul>&lt;li> public  &amp;mdash; Открытое наследование.
&lt;div class="indent">&lt;em>class circle: public point {};&lt;/em>&lt;br />
При&amp;nbsp;этом члены базового класса: &lt;br />
&lt;/div>&lt;ul>&lt;li> public  &amp;mdash; доступны любым нестатическим функциям-членам и&amp;nbsp;функциям не&amp;nbsp;являющимся членами;
&lt;/li>&lt;li> protected  &amp;mdash; доступны любым нестатическим функциям-членам и&amp;nbsp;дружественным функциям;
&lt;/li>&lt;li> private  &amp;mdash; невидимы в&amp;nbsp;производном классе;
&lt;/li>&lt;/ul>&lt;/li>&lt;li> private  &amp;mdash; Закрытое наследование. 
&lt;div class="indent">&lt;em>class circle: private point {};&lt;/em>&lt;br />
При&amp;nbsp;этом члены базового класса: &lt;br />
&lt;/div>&lt;ul>&lt;li> public  &amp;mdash; доступны любым нестатическим функциям-членам и&amp;nbsp;дружественным функциям (делает public члены базового класса &amp;ndash; private в&amp;nbsp;производном);
&lt;/li>&lt;li> protected  &amp;mdash; доступны любым нестатическим функциям-членам и&amp;nbsp;дружественным функциям (делает protected члены базового класса &amp;ndash; private в&amp;nbsp;производном);
&lt;/li>&lt;li> private  &amp;mdash; невидимы в&amp;nbsp;производном классе;
&lt;/li>&lt;/ul>&lt;/li>&lt;li> protected  &amp;mdash; Защищённое наследование.
&lt;div class="indent">&lt;em>class circle: protected point {};&lt;/em>&lt;br />
При&amp;nbsp;этом члены базового класса: &lt;br />
&lt;/div>&lt;ul>&lt;li> public  &amp;mdash; доступны любым нестатическим функциям-членам и&amp;nbsp;дружественным функциям (делает public члены базового класса &amp;ndash; protected в&amp;nbsp;производном);
&lt;/li>&lt;li> protected  &amp;mdash; доступны любым нестатическим функциям-членам и&amp;nbsp;дружественным функциям;
&lt;/li>&lt;li> private  &amp;mdash; невидимы в&amp;nbsp;производном классе;
&lt;/li>&lt;/ul>&lt;/li>&lt;li> virtual  &amp;mdash; используется для&amp;nbsp;решения проблемы подобъектов-дубликатов (использование базового класса более раза).&lt;/li>&lt;/ul>
&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
class&amp;nbsp;Cover&amp;nbsp;&lt;br />{&lt;br />&amp;nbsp;&amp;nbsp;public:&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;static&amp;nbsp;int&amp;nbsp;count;&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Cover(char&amp;nbsp;*title)&amp;nbsp;{&amp;nbsp;strcpy(Cover::title,&amp;nbsp;title)&amp;nbsp;;};&lt;br />&amp;nbsp;&amp;nbsp;protected:&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;char&amp;nbsp;title[256];&lt;br />};&amp;nbsp;&amp;nbsp;&lt;br />class&amp;nbsp;book&amp;nbsp;&lt;br />{&lt;br />&amp;nbsp;&amp;nbsp;public:&amp;nbsp;&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;book&amp;nbsp;(char&amp;nbsp;*title)&amp;nbsp;{srcpy(book::title,&amp;nbsp;title);&amp;nbsp;};&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void&amp;nbsp;show_title(void)&amp;nbsp;{cout&amp;nbsp;&amp;lt;&amp;lt;&amp;nbsp;title&amp;nbsp;&amp;lt;&amp;lt;endl;&amp;nbsp;};&lt;br />&amp;nbsp;&amp;nbsp;protected:&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;float&amp;nbsp;cost;&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void&amp;nbsp;show_cost(void)&amp;nbsp;{cout&amp;lt;&amp;lt;cost&amp;lt;&amp;lt;endl;&amp;nbsp;};&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br />&amp;nbsp;&amp;nbsp;private:&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;char&amp;nbsp;title[64];&lt;br />};&lt;br />class&amp;nbsp;LibraryCard&amp;nbsp;:&amp;nbsp;public&amp;nbsp;Cover,&amp;nbsp;public&amp;nbsp;book&amp;nbsp;{&lt;br />&amp;nbsp;&amp;nbsp;public:&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LibraryCard(char&amp;nbsp;*title,&amp;nbsp;char&amp;nbsp;*author,&amp;nbsp;char&amp;nbsp;*publisher):&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;book(title)&amp;nbsp;&amp;nbsp;&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;strcpy(LibraryCard::author,&amp;nbsp;author);&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;strcpy(LibraryCard::publisher,&amp;nbsp;publisher);&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cost&amp;nbsp;=&amp;nbsp;39.95;&amp;nbsp;&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br />&amp;nbsp;&amp;nbsp;private:&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;char&amp;nbsp;author[64];&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;char&amp;nbsp;publisher[64];&lt;br />};&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;a name="h1524-16">&lt;/a>&lt;h5>Полиморфизм&lt;/h5>
В&amp;nbsp;классах поддерживается позднее(динамическое) связывание посредством механизма виртуальных функций. Динамическое связывание(определение адресов вызываемых в&amp;nbsp;программе функций) происходит во&amp;nbsp;время выполнения программы. В&amp;nbsp;программах могут использоваться объектные переменные, или&amp;nbsp;объектные указатели, значения которых &amp;ndash; указатели на&amp;nbsp;объекты-экземпляры того или&amp;nbsp;иного класса. В&amp;nbsp;языке С++ разрешается использовать объектный указатель базового класса для&amp;nbsp;указания объекта производного класса. В&amp;nbsp;языке С++ полиморфизм обеспечивается использованием механизма виртуальных функций. Для&amp;nbsp;обращения к&amp;nbsp;членам базового и&amp;nbsp;производного класса имеющим одинаковые имена, используется определение виртуальной функции &amp;ndash; virtual, что&amp;nbsp;заставляет обращаться к&amp;nbsp;члену последнего активизированного класса. Для&amp;nbsp;корректного удаления объектов из&amp;nbsp;памяти можно создавать виртуальный деструктор который будет вызываться перед вызовом деструктора базового класса. Чистая виртуальная функция (приравнивается 0) является аналогом прототипа, который объявляется в&amp;nbsp;базовом классе а&amp;nbsp;описывается в&amp;nbsp;производном классе. Класс в&amp;nbsp;котором хотя бы&amp;nbsp;одна виртуальная функция приравнена 0 &amp;ndash; является абстрактной. Абстрактным также является класс у&amp;nbsp;которого деструктор приравнен к&amp;nbsp;0, но&amp;nbsp;всёже определён (используется для&amp;nbsp;исключения прямого создания объекта данного класса). Конкретным является класс в&amp;nbsp;котором все&amp;nbsp;чисто виртуальные функции базового класса переопределены: &lt;br />
&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
class&amp;nbsp;Base&lt;br />{&lt;br />&amp;nbsp;&amp;nbsp;public:&amp;nbsp;&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void&amp;nbsp;base_mess(void)&amp;nbsp;{cout&amp;lt;&amp;lt;"Base\n";&amp;nbsp;};&amp;nbsp;&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;virtual&amp;nbsp;void&amp;nbsp;show_mess(void)&amp;nbsp;{&amp;nbsp;cout&amp;lt;&amp;lt;"Base";};&amp;nbsp;&amp;nbsp;&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;virtual&amp;nbsp;void&amp;nbsp;show_reserve(void)&amp;nbsp;=&amp;nbsp;0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br />};&lt;br />class&amp;nbsp;Der:&amp;nbsp;public&amp;nbsp;Base&lt;br />{&lt;br />&amp;nbsp;&amp;nbsp;public:&amp;nbsp;&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void&amp;nbsp;der_mess(void){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&amp;nbsp;&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;virtual&amp;nbsp;void&amp;nbsp;show_mess(void)&amp;nbsp;{&amp;nbsp;cout&amp;lt;&amp;lt;"Der";};&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;virtual&amp;nbsp;void&amp;nbsp;show_reserve(void){&amp;nbsp;cout&amp;lt;&amp;lt;"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;";};&amp;nbsp;&amp;nbsp;&lt;br />};&lt;br />void&amp;nbsp;main(void)&amp;nbsp;&lt;br />{&amp;nbsp;&lt;br />&amp;nbsp;&amp;nbsp;Base&amp;nbsp;*base_pointer&amp;nbsp;=&amp;nbsp;new&amp;nbsp;Base;&lt;br />&amp;nbsp;&amp;nbsp;base_pointer-&amp;gt;base_mess();&lt;br />&amp;nbsp;&amp;nbsp;base_pointer-&amp;gt;show_mess();&lt;br />&amp;nbsp;&amp;nbsp;base_pointer&amp;nbsp;=&amp;nbsp;new&amp;nbsp;Der;&lt;br />&amp;nbsp;&amp;nbsp;base_pointer-&amp;gt;der_mess();&lt;br />&amp;nbsp;&amp;nbsp;base_pointer-&amp;gt;show_mess();&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br />}&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;a name="h1524-17">&lt;/a>&lt;h5>Инициализаторы&lt;/h5>
Для&amp;nbsp;инициализации членов данных из&amp;nbsp;конструктора можно использовать инициализаторы. Которые являются единственным способом инициализации константных членов класса: &lt;br />
&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
class&amp;nbsp;Time&lt;br />{&lt;br />&amp;nbsp;&amp;nbsp;public:&amp;nbsp;&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Time();&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;const&amp;nbsp;int&amp;nbsp;time;&lt;br />};&lt;br />Time::Time()&amp;nbsp;:&amp;nbsp;time(10)&lt;br />{...};&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;a name="h1524-18">&lt;/a>&lt;h5>Композиция&lt;/h5>
Классы допускают композицию т.е включение одного объекта в&amp;nbsp;другой. Включенные объекты уничтожаются после уничтожения содержащего их&amp;nbsp;объекта. &lt;br />
&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
class&amp;nbsp;Time&lt;br />{&lt;br />&amp;nbsp;&amp;nbsp;public:&amp;nbsp;&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Time();&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;const&amp;nbsp;int&amp;nbsp;time;&lt;br />};&lt;br />class&amp;nbsp;Date&lt;br />{&lt;br />&amp;nbsp;&amp;nbsp;public&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Date();&lt;br />&amp;nbsp;&amp;nbsp;private&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;const&amp;nbsp;Time&amp;nbsp;time;&lt;br />}&lt;br />Date::Date&amp;nbsp;:&amp;nbsp;time()&lt;br />{...};&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;a name="h1524-19">&lt;/a>&lt;h5>Ссылка на&amp;nbsp;себя&lt;/h5>
В&amp;nbsp;классах есть возможность ссылаться на&amp;nbsp;себя. Эта&amp;nbsp;функция обеспечивается ключевым словом &amp;lt;this&amp;gt; которое содержит адрес текущего объекта. Может использоваться сцепления путём возврата адреса или&amp;nbsp;ссылки объекта его&amp;nbsp;членами функциями.&lt;a name="h1524-20">&lt;/a>&lt;h5>Proxy классы&lt;/h5>
Proxy классами называются классы которые призваны скрывать private члены классов закрытой реализации библиотеки. Создаются они&amp;nbsp;путем создания указателя на&amp;nbsp;скрываемый класс в&amp;nbsp;private поле proxy класса: &lt;br />
&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
class&amp;nbsp;Sequry&lt;br />{&lt;br />&amp;nbsp;&amp;nbsp;public&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void&amp;nbsp;setValue(int&amp;nbsp;x);&lt;br />&amp;nbsp;&amp;nbsp;private:&amp;nbsp;&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int&amp;nbsp;value;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br />};&lt;br />class&amp;nbsp;Proxy&lt;br />{&lt;br />&amp;nbsp;&amp;nbsp;public&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;setValue(int&amp;nbsp;x)&amp;nbsp;{ptr-&amp;gt;setValue(x);};&lt;br />&amp;nbsp;&amp;nbsp;private&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Sequry&amp;nbsp;*ptr;&lt;br />}&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;a name="h1524-21">&lt;/a>&lt;h3>1.4 Синтаксис&lt;/h3>&lt;a name="h1524-22">&lt;/a>&lt;h4>1.4.1 Полезные обороты&lt;/h4>
&lt;ul>&lt;li> Приведение типов: 
&lt;/li>&lt;/ul>&lt;div class="indent">&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
long&amp;nbsp;с&amp;nbsp;=&amp;nbsp;(long)a;&amp;nbsp;-&amp;nbsp;традиционная&amp;nbsp;запись;&amp;nbsp;&lt;br />long&amp;nbsp;с&amp;nbsp;=&amp;nbsp;long(a);&amp;nbsp;-&amp;nbsp;функциональная&amp;nbsp;запись;&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;br />
&lt;/div>&lt;ul>&lt;li> Декларация нескольких переменных одного типа: 
&lt;/li>&lt;/ul>&lt;div class="indent">&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
int&amp;nbsp;x,&amp;nbsp;&amp;nbsp;//&amp;nbsp;x&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;y,&amp;nbsp;&amp;nbsp;//&amp;nbsp;y&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;z;&amp;nbsp;&amp;nbsp;//&amp;nbsp;z&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;br />
&lt;/div>&lt;ul>&lt;li> Варианты использования параметров функций: 
&lt;ul>&lt;li> для&amp;nbsp;меняющихся аргументов необходимо использовать ссылки или&amp;nbsp;указатели (ссылки на&amp;nbsp;массив); 
&lt;/li>&lt;/ul>&lt;div class="indent">&lt;em>int test(int *ptr, int&amp;nbsp;&amp;alias, int[] &amp;mass );&lt;/em>&lt;br />
&lt;/div>&lt;ul>&lt;li> для&amp;nbsp;неизменяемых аргументов использовать прямую передачу по&amp;nbsp;значению ; 
&lt;/li>&lt;/ul>&lt;div class="indent">&lt;em>int test(int value);&lt;/em>&lt;br />
&lt;/div>&lt;ul>&lt;li> для&amp;nbsp;больших неизменяемых аргументов использовать константные ссылки или&amp;nbsp;указатели на&amp;nbsp;константные данные; 
&lt;/li>&lt;/ul>&lt;div class="indent">&lt;em>int test(const int&amp;nbsp;&amp;value, const int&amp;nbsp;*ptr);&lt;/em>&lt;br />
&lt;/div>&lt;/li>&lt;li> Использование ключевого слова const (запрет модификации): 
&lt;ul>&lt;li> неконстантный указатель на&amp;nbsp;неконстантные данные;
&lt;/li>&lt;/ul>&lt;div class="indent">&lt;em>void test(char *str);&lt;/em>&lt;br />
&lt;/div>&lt;ul>&lt;li> неконстантный указатель на&amp;nbsp;константные данные;
&lt;/li>&lt;/ul>&lt;div class="indent">&lt;em>void test(const char *str);&lt;/em>&lt;br />
&lt;/div>&lt;ul>&lt;li> константный указатель на&amp;nbsp;неконстантные данные;
&lt;/li>&lt;/ul>&lt;div class="indent">&lt;em>int * const ptr&amp;nbsp;= &amp;x;&lt;/em>&lt;br />
&lt;/div>&lt;ul>&lt;li> константный указатель на&amp;nbsp;константные данные;
&lt;/li>&lt;/ul>&lt;div class="indent">&lt;em>const int&amp;nbsp;* const ptr&amp;nbsp;= &amp;x;&lt;/em>&lt;br />
&lt;/div>&lt;ul>&lt;li> константный класс &amp;ndash; не&amp;nbsp;позволяет запускать неконстантные функции члены, кроме конструктора и&amp;nbsp;деструктора;
&lt;/li>&lt;/ul>&lt;div class="indent">&lt;em>const Time moon(12,0,0);&lt;/em>&lt;br />
&lt;/div>&lt;ul>&lt;li> константная функция &amp;ndash; недопускается ничего (кроме mutable членов) модифицировать в&amp;nbsp;константных функциях, а&amp;nbsp;также вызывать неконстантные функции; 
&lt;/li>&lt;/ul>&lt;div class="indent">&lt;em>int getValue() const;&lt;/em>&lt;br />
&lt;/div>&lt;/li>&lt;li> Предотвращение многократного включения заголовочных файлов: 
&lt;/li>&lt;/ul>&lt;div class="indent">&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
#ifndef&amp;nbsp;TEST_H&lt;br />#define&amp;nbsp;TEST_H&lt;br />&amp;lt;code&amp;gt;&lt;br />#endif&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;br />
&lt;/div>&lt;ul>&lt;li> Комментирование/исключение больших кусков кода: 
&lt;/li>&lt;/ul>&lt;div class="indent">&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
#if&amp;nbsp;0&lt;br />&amp;lt;code&amp;gt;&lt;br />#endif&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;br />
&lt;/div>&lt;ul>&lt;li> Использование значений параметров функций по&amp;nbsp;умолчанию: 
&lt;/li>&lt;/ul>&lt;div class="indent">&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
void&amp;nbsp;show_values(int&amp;nbsp;one=1,&amp;nbsp;int&amp;nbsp;two=2,&amp;nbsp;int&amp;nbsp;three=3);&lt;br />show_value();&lt;br />show_value(23);&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;br />
&lt;/div>&lt;ul>&lt;li> Объявление переменных по&amp;nbsp;месту: 
&lt;/li>&lt;/ul>&lt;div class="indent">&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
for&amp;nbsp;(int&amp;nbsp;count&amp;nbsp;=&amp;nbsp;0;&amp;nbsp;count&amp;nbsp;&amp;lt;&amp;nbsp;10;count++)&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;br />
&lt;/div>&lt;ul>&lt;li> Функции переменного числа параметров: 
&lt;/li>&lt;/ul>&lt;div class="indent">&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
void&amp;nbsp;text(parm&amp;nbsp;x,char&amp;nbsp;*fmt,&amp;nbsp;...)&lt;br />&amp;nbsp;{&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;char&amp;nbsp;str[100];&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;va_start&amp;nbsp;(argptr,fmt);&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;vsprintf(str,fmt,argptr);&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;va_end(argptr);&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;printf(str);&lt;br />&amp;nbsp;}&lt;br />&amp;nbsp;text(54,"hello&amp;nbsp;%s","world");&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;br />
&lt;/div>&lt;ul>&lt;li> Указание способа(языка) для&amp;nbsp;которого должна компилироваться функция:
&lt;/li>&lt;/ul>&lt;div class="indent">&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
extern&amp;nbsp;"C"&amp;nbsp;func();&amp;nbsp;&amp;nbsp;//&amp;nbsp;В&amp;nbsp;стиле&amp;nbsp;"C"&lt;br />&amp;nbsp;extern&amp;nbsp;"C++"&amp;nbsp;func():&amp;nbsp;//&amp;nbsp;В&amp;nbsp;стиле&amp;nbsp;"C++"&lt;br />&amp;nbsp;extern&amp;nbsp;"C++"&amp;nbsp;&lt;br />&amp;nbsp;{&lt;br />&amp;nbsp;&amp;nbsp;int&amp;nbsp;func(void);&lt;br />&amp;nbsp;}&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;/div>&lt;a name="h1524-23">&lt;/a>&lt;h4>1.4.2 Указатели&lt;/h4>
Особенностью языка С/С++ является возможность доступа к&amp;nbsp;переменной не&amp;nbsp;только по&amp;nbsp;имени но&amp;nbsp;и с&amp;nbsp;использованием механизма указателей. Для&amp;nbsp;этого в&amp;nbsp;языке предусмотрены символы: &amp;#8220;&amp;" и&amp;nbsp;"*". &lt;br />
Символ "*" используется для&amp;nbsp;индикации переменной (*ptr), которая расположена в&amp;nbsp;памяти по&amp;nbsp;адресу на&amp;nbsp;который указывает одноимённая переменная без&amp;nbsp;звёздочки. Символ &amp;#8220;&amp;" используется как&amp;nbsp;для определения адреса ячейки памяти переменной, так&amp;nbsp;и&amp;nbsp;для определения адреса указателя на&amp;nbsp;переменную.&lt;br />
&lt;ul>&lt;li> Назначение адреса указателя:
&lt;/li>&lt;/ul>&lt;div class="indent">&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
int&amp;nbsp;*ptr&amp;nbsp;=&amp;nbsp;(int&amp;nbsp;*)0x0010;&amp;nbsp;&amp;nbsp;&amp;nbsp;//при&amp;nbsp;инициализации&amp;nbsp;&amp;nbsp;&lt;br />&amp;nbsp;ptr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;=&amp;nbsp;(int&amp;nbsp;*)0x0010;&amp;nbsp;&amp;nbsp;&amp;nbsp;//в&amp;nbsp;программе&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;br />
&lt;/div>&lt;ul>&lt;li> Присвоение значения непосредственно переменной на&amp;nbsp;которую указывает указатель:
&lt;/li>&lt;/ul>&lt;div class="indent">&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
*ptr&amp;nbsp;=&amp;nbsp;300&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;br />
&lt;/div>&lt;ul>&lt;li> Родовой указатель в&amp;nbsp;С/С++ основан на&amp;nbsp;использовании указателя типа (void *). Ключевое слово void говорит об&amp;nbsp;отсутствии данных о&amp;nbsp;размере объекта в&amp;nbsp;памяти. Во&amp;nbsp;всех случаях использования указателя описанного как&amp;nbsp;void*, необходимо выполнять операцию явного приведения типа указателя:
&lt;/li>&lt;/ul>&lt;div class="indent">&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
unsigned&amp;nbsp;long&amp;nbsp;block&amp;nbsp;=&amp;nbsp;0xffeeddccL;&amp;nbsp;&lt;br />&amp;nbsp;void&amp;nbsp;*ptr&amp;nbsp;=&amp;nbsp;&amp;amp;block;&lt;br />&amp;nbsp;unsigned&amp;nbsp;char&amp;nbsp;=&amp;nbsp;*(unsigned&amp;nbsp;char&amp;nbsp;*)ptr;&amp;nbsp;&lt;br />&amp;nbsp;long&amp;nbsp;int&amp;nbsp;four_bytes&amp;nbsp;=&amp;nbsp;*(long&amp;nbsp;int&amp;nbsp;*)ptr;&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;br />
&lt;/div>&lt;ul>&lt;li> Определение адреса указателя: 
&lt;/li>&lt;/ul>&lt;div class="indent">&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
int&amp;nbsp;*ptr;&amp;nbsp;&lt;br />&amp;nbsp;k&amp;nbsp;=&amp;nbsp;&amp;amp;ptr;&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;br />
&lt;/div>&lt;ul>&lt;li> Указатель на&amp;nbsp;указатель: 
&lt;/li>&lt;/ul>&lt;div class="indent">&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
int&amp;nbsp;data&amp;nbsp;=&amp;nbsp;5;&lt;br />&amp;nbsp;int&amp;nbsp;*ptr&amp;nbsp;=&amp;nbsp;&amp;amp;data;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;ptr[0]==5;&amp;nbsp;&lt;br />&amp;nbsp;int&amp;nbsp;**ptr1&amp;nbsp;=&amp;nbsp;&amp;amp;ptr;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;ptr1[0][0]==5;&amp;nbsp;&lt;br />&amp;nbsp;int&amp;nbsp;***ptr2&amp;nbsp;=&amp;nbsp;&amp;amp;ptr1;&amp;nbsp;//&amp;nbsp;ptr2[0][0][0]==5;&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;br />
&lt;/div>&lt;ul>&lt;li> Возврат указателя функцией:
&lt;/li>&lt;/ul>&lt;div class="indent">&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
bool&amp;nbsp;*cimpare(int,&amp;nbsp;int);&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;br />
&lt;/div>&lt;ul>&lt;li> Указатель на&amp;nbsp;функцию: 
&lt;/li>&lt;/ul>&lt;div class="indent">&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
bool&amp;nbsp;(*&amp;nbsp;compare)(int,&amp;nbsp;int);&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;br />
&lt;/div>&lt;ul>&lt;li> Указатели на&amp;nbsp;члены класса (.* и&amp;nbsp;-&amp;gt;*) 
&lt;/li>&lt;/ul>&lt;div class="indent">&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
class&amp;nbsp;Test&lt;br />{&lt;br />&amp;nbsp;&amp;nbsp;public:&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void&amp;nbsp;funct()&amp;nbsp;{&amp;nbsp;cout&amp;nbsp;&amp;lt;&amp;lt;&amp;nbsp;"Функция\n";&amp;nbsp;}&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int&amp;nbsp;value;&lt;br />};&lt;br />Test&amp;nbsp;t;&lt;br />Test&amp;nbsp;*tPtr&amp;nbsp;=&amp;nbsp;&amp;amp;t;&lt;br />void&amp;nbsp;(Test::*memPtr)()&amp;nbsp;=&amp;nbsp;&amp;amp;Test::funct;&lt;br />int&amp;nbsp;&amp;nbsp;Test::*vPtr&amp;nbsp;=&amp;nbsp;&amp;amp;Test::value;&lt;br />(tPtr-&amp;gt;*memPtr)();&amp;nbsp;//косвенный&amp;nbsp;вызов&amp;nbsp;функции&lt;br />cout&amp;nbsp;&amp;lt;&amp;lt;&amp;nbsp;(*tPtr).*vPtr&amp;nbsp;&amp;lt;&amp;lt;&amp;nbsp;endl;&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;/div>&lt;a name="h1524-24">&lt;/a>&lt;h4>1.4.3 Ссылки (C++)&lt;/h4>
Ссылка являются псевдонимом (алиасом) от&amp;nbsp;переменной на&amp;nbsp;которую она&amp;nbsp;ссылается. При&amp;nbsp;изменении ссылаемой переменной изменяется ссылка. В&amp;nbsp;основном ссылки используются при&amp;nbsp;описании параметров функций и&amp;nbsp;указывают что&amp;nbsp;переменная может меняться.&lt;br />
&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
int&amp;nbsp;&amp;amp;test(int&amp;nbsp;&amp;amp;x);&lt;br />&amp;nbsp;int&amp;nbsp;data&amp;nbsp;=&amp;nbsp;5;&lt;br />&amp;nbsp;int&amp;nbsp;&amp;amp;al_data&amp;nbsp;=&amp;nbsp;data;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;al_data&amp;nbsp;==&amp;nbsp;5;&amp;nbsp;&lt;br />&amp;nbsp;al_data&amp;nbsp;=&amp;nbsp;10;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;data&amp;nbsp;==&amp;nbsp;10;&amp;nbsp;&lt;br />&amp;nbsp;data&amp;nbsp;=&amp;nbsp;7;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;al_data&amp;nbsp;==&amp;nbsp;7;&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;a name="h1524-25">&lt;/a>&lt;h4>1.4.4 Массивы&lt;/h4>
Как&amp;nbsp;и&amp;nbsp;в других языках, С/С++ поддерживает массивы которые тесно переплетаются с&amp;nbsp;указателями. Элементы массива имеют один и&amp;nbsp;тот же&amp;nbsp;тип и&amp;nbsp;расположены в&amp;nbsp;памяти друг за&amp;nbsp;другом. Имя&amp;nbsp;массива также можно воспринимать как&amp;nbsp;указатель на&amp;nbsp;начало массива. &lt;br />
В&amp;nbsp;отличие от&amp;nbsp;других языков в&amp;nbsp;С/С++ отсутствует специальный строковый тип. Вместо него строковые литералы представляются как&amp;nbsp;одномерный массив элементов типа char оканчивающегося символом &amp;#8220;0&amp;#8221;.&lt;br />
&lt;ul>&lt;li> Явное указание числа элементов массива и&amp;nbsp;списка начальных значений: 
&lt;/li>&lt;/ul>&lt;div class="indent">&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
char&amp;nbsp;array[]&amp;nbsp;&amp;nbsp;=&amp;nbsp;{'A','B','C','D',0};&lt;br />&amp;nbsp;char&amp;nbsp;array[]&amp;nbsp;&amp;nbsp;=&amp;nbsp;"ABCD";&lt;br />&amp;nbsp;char&amp;nbsp;array[5]&amp;nbsp;=&amp;nbsp;{'A','B','C','D',0};&lt;br />&amp;nbsp;char&amp;nbsp;*string&amp;nbsp;&amp;nbsp;=&amp;nbsp;"ABCD";&lt;br />&amp;nbsp;string&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;=&amp;nbsp;"ABCD";&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;br />
&lt;/div>&lt;ul>&lt;li> Обращение к&amp;nbsp;элементам массива с&amp;nbsp;помощью указателя:  
&lt;/li>&lt;/ul>&lt;div class="indent">&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
*(array+i);&amp;nbsp;&lt;br />&amp;nbsp;array[i][j];&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br />&amp;nbsp;*(array[i]+j);&amp;nbsp;&amp;nbsp;&lt;br />&amp;nbsp;*(*(array+i)+j);&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;br />
&lt;/div>&lt;ul>&lt;li> Многомерные массивы: 
&lt;/li>&lt;/ul>&lt;div class="indent">&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
matrix[2]&amp;nbsp;==&amp;nbsp;&amp;amp;matrix[2][10];&amp;nbsp;&lt;br />&amp;nbsp;long&amp;nbsp;(*&amp;nbsp;matrix1)[3][2][4];&lt;br />&amp;nbsp;matrix1&amp;nbsp;=&amp;nbsp;new&amp;nbsp;long[3][2][4];&lt;br />&amp;nbsp;char&amp;nbsp;*messages[20]&amp;nbsp;==&amp;nbsp;char&amp;nbsp;messages[20][80]);&lt;br />&amp;nbsp;char&amp;nbsp;string[][80]=&lt;br />&amp;nbsp;{&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;"Первая&amp;nbsp;строка",&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;"Вторая&amp;nbsp;строка",&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;"Следующая&amp;nbsp;строка"&lt;br />&amp;nbsp;};&amp;nbsp;&lt;br />&amp;nbsp;int&amp;nbsp;m[][3]&amp;nbsp;=&amp;nbsp;{&amp;nbsp;{00},&amp;nbsp;{10,&amp;nbsp;11},&amp;nbsp;{20,&amp;nbsp;21,&amp;nbsp;22,}&amp;nbsp;};&amp;nbsp;&lt;br />&amp;nbsp;char&amp;nbsp;*Names[]=&amp;nbsp;{&amp;nbsp;"Aleksey",&amp;nbsp;"Vladislav",&amp;nbsp;"Vitaly"&amp;nbsp;};&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;br />
&lt;/div>&lt;ul>&lt;li> Массив указателей на&amp;nbsp;функцию: 
&lt;/li>&lt;/ul>&lt;div class="indent">&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
int&amp;nbsp;&amp;nbsp;(*&amp;nbsp;fcmp[5])(int)&amp;nbsp;=&amp;nbsp;&amp;nbsp;&lt;br />&amp;nbsp;{cmp_name,&amp;nbsp;cmp_title,&amp;nbsp;cmp_year,&amp;nbsp;cmp_price,&amp;nbsp;cmp_totaly};&lt;br />&amp;nbsp;void&amp;nbsp;(*&amp;nbsp;func[3])(int);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//определение&lt;br />&amp;nbsp;(*&amp;nbsp;func[choice])(choice);&amp;nbsp;//вызов&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;/div>&lt;a name="h1524-26">&lt;/a>&lt;h4>1.4.5 Перегрузка функций&lt;/h4>
В&amp;nbsp;языке C++ разрешается иметь множество функций с&amp;nbsp;одним и&amp;nbsp;тем же&amp;nbsp;именем, но&amp;nbsp;отличающиеся типами параметров или&amp;nbsp;их&amp;nbsp;количеством: &lt;br />
&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
int&amp;nbsp;sum(int&amp;nbsp;*array,&amp;nbsp;int&amp;nbsp;element)&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br />&amp;nbsp;float&amp;nbsp;sum(float&amp;nbsp;*array,&amp;nbsp;int&amp;nbsp;element)&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;a name="h1524-27">&lt;/a>&lt;h4>1.4.6 Перегрузка операций&lt;/h4>
Перегрузкой операция является процедура расширения функций существующих операция для&amp;nbsp;новых типов x(объектов). Операции допускающие перегрузку указанны в&amp;nbsp;табл.4.  При&amp;nbsp;перегрузке операций их&amp;nbsp;старшинство и&amp;nbsp;ассоциативность не&amp;nbsp;изменяется. &lt;br />
&lt;ul>&lt;li> Унарная операция (префиксная).
&lt;/li>&lt;/ul>&lt;div class="indent"> &lt;em>Операция:&lt;/em>! S&amp;nbsp;&lt;br />
 &lt;em>Вызывает:&lt;/em> S.operator!() или&amp;nbsp;operator!(S) &lt;br />
 &lt;em>Объявляется:&lt;/em> bool operator!() const; или&amp;nbsp;friend bool operator!(const String &amp;);&lt;br />
&lt;/div>&lt;ul>&lt;li> Унарная операция (постфиксная).
&lt;/li>&lt;/ul>&lt;div class="indent"> &lt;em>Операция:&lt;/em> d1++&lt;br />
 &lt;em>Вызывает:&lt;/em> d1.operator&lt;small>(0) или&amp;nbsp;operator&lt;/small>(d1,0)&lt;br />
 &lt;em>Объявляется:&lt;/em> Date::operator&lt;small>(int); или&amp;nbsp;friend Date::operator&lt;/small>(Date &amp;,int);&lt;br />
&lt;/div>&lt;ul>&lt;li> Бинарная операция.
&lt;/li>&lt;/ul>&lt;div class="indent"> &lt;em>Операция:&lt;/em> y+=z &lt;br />
 &lt;em>Вызывает:&lt;/em> y.operator+=(z) или&amp;nbsp;operator+=(y,z) &lt;br />
 &lt;em>Объявляется:&lt;/em> const String &amp;operator+=(const String &amp;); или&amp;nbsp;friend const String &amp;operator+=(String &amp;, const String &amp;); &lt;br />
&lt;/div>&lt;ul>&lt;li> Вызов функции.
&lt;/li>&lt;/ul>&lt;div class="indent"> &lt;em>Операция:&lt;/em> string(2,2);&lt;br />
 &lt;em>Вызывает:&lt;/em> string.operator()(2,2);&lt;br />
 &lt;em>Объявляется:&lt;/em> String operator()(int,int);&lt;br />
&lt;/div>&lt;ul>&lt;li> Приведение типов.
&lt;/li>&lt;/ul>&lt;div class="indent"> &lt;em>Операция:&lt;/em> (char *)S;&lt;br />
 &lt;em>Вызывает:&lt;/em> S.operator char*()&lt;br />
 &lt;em>Объявляется:&lt;/em> String operator char*(); или&amp;nbsp;String(char *); (конструктор неявного преобразования). &lt;br />
&lt;/div>&lt;ul>&lt;li> операция &amp;#8220;new&amp;#8221;.
&lt;/li>&lt;/ul>&lt;div class="indent"> &lt;em>Операция:&lt;/em> Class1 *cls = new&amp;nbsp;Class1; или&amp;nbsp;Class1 *cls = new&amp;nbsp;(&amp;laquo;class&amp;raquo;) Class1;&lt;br />
 &lt;em>Вызывает:&lt;/em> Class1 *cls = Class2.operator new(sizeof(Class1)); или&amp;nbsp;Class1 *cls = Class2.operator new(&amp;laquo;class&amp;raquo;, sizeof(Class1));&lt;br />
 &lt;em>Объявляется:&lt;/em> void* Class2::operator new(size_t size); или&amp;nbsp;void* Class2::operator new(string modul, size_t size);&lt;br />
&lt;/div>&lt;ul>&lt;li> операция &amp;#8220;delete&amp;#8221;. 
&lt;/li>&lt;/ul>&lt;div class="indent"> &lt;em>Операция:&lt;/em> delete cls;&lt;br />
 &lt;em>Вызывает:&lt;/em> Class2.operator delete(cls);&lt;br />
 &lt;em>Объявляется:&lt;/em> void* Class2::operator delete(void *addr); &lt;/div>
Таблица 4. &lt;strong>Операции допускающие перегрузку&lt;/strong>&lt;br />
&lt;table class="usertable" border="1">
&lt;tr class="userrow">&lt;td class="usercell">+&lt;/td>&lt;td class="usercell">-&lt;/td>&lt;td class="usercell">*&lt;/td>&lt;td class="usercell">/&lt;/td>&lt;td class="usercell">%&lt;/td>&lt;td class="usercell">^&lt;/td>&lt;td class="usercell">&amp;&lt;/td>&lt;td  class="usercell">&amp;#124;&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">&amp;#126;&lt;/td>&lt;td class="usercell">!&lt;/td>&lt;td class="usercell">=&lt;/td>&lt;td class="usercell">&amp;#60;&lt;/td>&lt;td class="usercell">&amp;#62;&lt;/td>&lt;td class="usercell">+=&lt;/td>&lt;td class="usercell">-=&lt;/td>&lt;td  class="usercell">*=&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">/=&lt;/td>&lt;td class="usercell">%=&lt;/td>&lt;td class="usercell">^=&lt;/td>&lt;td class="usercell">&amp;=&lt;/td>&lt;td class="usercell">&amp;#124;=&lt;/td>&lt;td class="usercell">&amp;#60;&amp;#60;&lt;/td>&lt;td class="usercell">&amp;#62;&amp;#62;&lt;/td>&lt;td  class="usercell">&amp;#62;&amp;#62;=&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">&amp;#60;&amp;#60;=&lt;/td>&lt;td class="usercell">==&lt;/td>&lt;td class="usercell">!=&lt;/td>&lt;td class="usercell">&amp;#60;=&lt;/td>&lt;td class="usercell">&amp;#62;=&lt;/td>&lt;td class="usercell">&amp;&amp;&lt;/td>&lt;td class="usercell">&amp;#124;&amp;#124;&lt;/td>&lt;td  class="usercell">++&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">&amp;#45;&amp;#45;&lt;/td>&lt;td class="usercell">-&amp;#62;*&lt;/td>&lt;td class="usercell">,&lt;/td>&lt;td class="usercell">-&amp;#62;&lt;/td>&lt;td class="usercell">[]&lt;/td>&lt;td class="usercell">()&lt;/td>&lt;td class="usercell">new&lt;/td>&lt;td  class="usercell">delete&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">new[]&lt;/td>&lt;td class="usercell" colspan="7">delete[]&lt;/td>&lt;/tr>
&lt;/table>&lt;a name="h1524-28">&lt;/a>&lt;h4>1.4.7 Шаблоны&lt;/h4>
Шаблоны определяются с&amp;nbsp;помощью ключевого слова &lt;strong>template&lt;/strong> и&amp;nbsp;предназначены для&amp;nbsp;определения функций и&amp;nbsp;классов способных работать с&amp;nbsp;различными типами входных и&amp;nbsp;выходных параметров. Шаблоны и&amp;nbsp;наследование связаны следующим образом:&lt;br />
&lt;ul>&lt;li> шаблон класса может быть производным от&amp;nbsp;шаблонного класса;
&lt;/li>&lt;li> шаблон класса может являться производным от&amp;nbsp;нешаблонного класса;
&lt;/li>&lt;li> шаблон класса может быть производным от&amp;nbsp;шаблона класса;
&lt;/li>&lt;li> нешаблонный класс может быть производным от&amp;nbsp;шаблона класса.&lt;/li>&lt;/ul>
Шаблонные классы: &lt;br />
&lt;ul>&lt;li> Объявление: 
&lt;/li>&lt;/ul>&lt;div class="indent">&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
template&amp;nbsp;&amp;lt;class&amp;nbsp;Templ&amp;gt;&lt;br />&amp;nbsp;class&amp;nbsp;Tree&amp;nbsp;&lt;br />&amp;nbsp;{&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;public:&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Tree(&amp;nbsp;const&amp;nbsp;Templ&amp;amp;&amp;nbsp;n&amp;nbsp;);&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;insertN(const&amp;nbsp;Templ&amp;nbsp;&amp;amp;);&lt;br />&amp;nbsp;}&amp;nbsp;&lt;br />&amp;nbsp;template&amp;nbsp;&amp;lt;class&amp;nbsp;Templ&amp;gt;&lt;br />&amp;nbsp;Tree&amp;lt;Templ&amp;gt;::Tree(const&amp;nbsp;Templ&amp;amp;&amp;nbsp;n)&amp;nbsp;{&amp;nbsp;};&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;br />
&lt;/div>&lt;ul>&lt;li> Использование:  
&lt;/li>&lt;/ul>&lt;div class="indent">&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
Tree&amp;lt;int&amp;gt;&amp;nbsp;NewTree(23);&amp;nbsp;&lt;br />&amp;nbsp;Tree&amp;lt;float&amp;gt;&amp;nbsp;NewTree(56.8);&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;/div>
Шаблонные функции: &lt;br />
&lt;ul>&lt;li> Объявление: 
&lt;/li>&lt;/ul>&lt;div class="indent">&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
template&amp;nbsp;&amp;lt;class&amp;nbsp;T&amp;gt;&amp;nbsp;//&amp;nbsp;или&amp;nbsp;template&amp;nbsp;&amp;lt;typname&amp;nbsp;T&amp;gt;;&lt;br />&amp;nbsp;T&amp;nbsp;max(T&amp;nbsp;val1,&amp;nbsp;T&amp;nbsp;val2,&amp;nbsp;T&amp;nbsp;val3)&lt;br />&amp;nbsp;{&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;T&amp;nbsp;max&amp;nbsp;=&amp;nbsp;val1;&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;if(val2&amp;nbsp;&amp;gt;&amp;nbsp;max)&amp;nbsp;max=val2;&amp;nbsp;&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;if(val3&amp;nbsp;&amp;gt;&amp;nbsp;max)&amp;nbsp;max=val3;&amp;nbsp;&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;max;&lt;br />&amp;nbsp;}&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;br />
&lt;/div>&lt;ul>&lt;li> Использование: 
&lt;/li>&lt;/ul>&lt;div class="indent">&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
int&amp;nbsp;rez&amp;nbsp;=&amp;nbsp;max(1,10,3);&lt;br />&amp;nbsp;float&amp;nbsp;rez&amp;nbsp;=&amp;nbsp;max(0.5,9.99,6.78);&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;/div>
Шаблоны и&amp;nbsp;друзья: &lt;br />
&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
friend&amp;nbsp;void&amp;nbsp;f1();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//друг&amp;nbsp;любого&amp;nbsp;класса&lt;br />&amp;nbsp;friend&amp;nbsp;void&amp;nbsp;f2(x&amp;lt;T&amp;gt;&amp;nbsp;&amp;amp;);&amp;nbsp;//друг&amp;nbsp;конкретного&amp;nbsp;класса&lt;br />&amp;nbsp;friend&amp;nbsp;void&amp;nbsp;A::f4();&amp;nbsp;//друг&amp;nbsp;любого&amp;nbsp;класса&lt;br />&amp;nbsp;friend&amp;nbsp;void&amp;nbsp;C&amp;lt;T&amp;gt;::f5(x&amp;lt;T&amp;gt;&amp;nbsp;&amp;amp;);&amp;nbsp;//друг&amp;nbsp;конкретного&amp;nbsp;класса&lt;br />&amp;nbsp;friend&amp;nbsp;class&amp;nbsp;Y;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//класс&amp;nbsp;Y&amp;nbsp;дружественен&amp;nbsp;любому&amp;nbsp;классу&lt;br />&amp;nbsp;friend&amp;nbsp;class&amp;nbsp;Z&amp;lt;T&amp;gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;//класс&amp;nbsp;Y&amp;nbsp;дружественен&amp;nbsp;конкретному&amp;nbsp;классу&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;a name="h1524-29">&lt;/a>&lt;h4>1.4.8 Обработка исключительных ситуаций&lt;/h4>
В&amp;nbsp;языке C++, добавлен мощный аппарат обработки исключительных ситуаций. Этот аппарат позволяет отлавливать как&amp;nbsp;все типы исключений, так&amp;nbsp;и&amp;nbsp;конкретно взятый тип&amp;nbsp;исключений. Так&amp;nbsp;если записать catch(...), то&amp;nbsp;будут отлавливаться все&amp;nbsp;типы исключений. Кроме того обработка исключительных ситуаций оказываться вынесенной из&amp;nbsp;&amp;laquo;основной линии&amp;raquo; выполнения программы. Для&amp;nbsp;генерации повторных исключений в&amp;nbsp;catch опускаться использование (throw) без&amp;nbsp;параметров. Если происходит глубоковложенное исключение, то&amp;nbsp;выполняется &amp;laquo;раскрутка&amp;raquo; стека для&amp;nbsp;возвращения до&amp;nbsp;ближайшего catch Обработка исключительных ситуаций описывается следующим образом: &lt;br />
&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
try&amp;nbsp;&amp;nbsp;//начало&amp;nbsp;блока&amp;nbsp;испытания&lt;br />{&lt;br />&amp;nbsp;&amp;nbsp;if()&amp;nbsp;throw&amp;nbsp;MyType();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;Принудительная&amp;nbsp;генерация&amp;nbsp;&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;&amp;nbsp;(точка&amp;nbsp;генерации)&lt;br />}&amp;nbsp;&lt;br />catch(MyType&amp;nbsp;&amp;amp;Mt)&amp;nbsp;{...};&amp;nbsp;&amp;nbsp;//&amp;nbsp;Отлов&amp;nbsp;и&amp;nbsp;обработка&amp;nbsp;исключений&amp;nbsp;MyType&lt;br />catch(...){...};&amp;nbsp;&amp;nbsp;//&amp;nbsp;Отлов&amp;nbsp;и&amp;nbsp;обработка&amp;nbsp;всех&amp;nbsp;остальных&amp;nbsp;исключений&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;br />
Для&amp;nbsp;ограничения круга генерируемых исключений функцией, можно указать спецификацию исключений для&amp;nbsp;функции: &lt;br />
 &lt;br />
&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
int&amp;nbsp;g(double&amp;nbsp;h)&amp;nbsp;throw(a,b,c)&amp;nbsp;//может&amp;nbsp;генер.&amp;nbsp;a,b,c&amp;nbsp;и&amp;nbsp;&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//unexpected&lt;br />&amp;nbsp;int&amp;nbsp;g(double&amp;nbsp;h)&amp;nbsp;throw()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//не&amp;nbsp;может&amp;nbsp;генерировать&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//(кроме&amp;nbsp;unexpected)&lt;br />&amp;nbsp;int&amp;nbsp;g(double&amp;nbsp;h)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//может&amp;nbsp;генерировать&amp;nbsp;все&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;br />
Стандартные обработчики исключений:&lt;br />
&lt;ul>&lt;li> bad_alloc (exception)  &amp;mdash; ошибка выделения памяти с&amp;nbsp;помощью new;
&lt;/li>&lt;li> bad_cast (exception)  &amp;mdash; генерируется dynamic_cast;
&lt;/li>&lt;li> bad_exception (exception)  &amp;mdash; неожиданое исключение генерируется в&amp;nbsp;случае неожиданного исключения при&amp;nbsp;включении std::bad_exception в&amp;nbsp;throw-список функции; 
&lt;/li>&lt;li> bad_typeid (exception)  &amp;mdash; генерируется typeid; 
&lt;/li>&lt;li> invalid_argument (exception)  &amp;mdash; функции передан недопустимый аргумент;
&lt;/li>&lt;li> logic_error (exception)  &amp;mdash; исключения в&amp;nbsp;логических операциях;
&lt;/li>&lt;li> length_error (exception)  &amp;mdash; длина более максимально допустимой;
&lt;/li>&lt;li> out_of_range (exception)  &amp;mdash; аргумент вне&amp;nbsp;допустимого диапазона;
&lt;/li>&lt;li> runtime_error (exception)  &amp;mdash; Ошибка в&amp;nbsp;программе;
&lt;/li>&lt;li> overflow_error (runtime_error)  &amp;mdash; математическая ошибка переполнения сверху; 
&lt;/li>&lt;li> underflow_error (runtime_error)  &amp;mdash; математическая ошибка переполнения снизу; &lt;/li>&lt;/ul>
Чтоб избежать утечек памяти, обусловленных забыванием вызова delete после new, можно использовать шаблон auto_ptr, который будет автоматически разрушаться. &lt;br />
На&amp;nbsp;базе класса exception, можно генерировать собственные исключения.&lt;a name="h1524-30">&lt;/a>&lt;h3>1.5 Операции&lt;/h3>
Таблица 5. &lt;strong>Операции языка С/С++&lt;/strong> &lt;br />
&lt;table class="usertable" border="1">
&lt;tr class="userrow">&lt;td class="usercell">&lt;div style="float:center; text-align:center">&lt;strong>Символ&lt;/strong>&lt;/div>&lt;/td>&lt;td class="usercell">&lt;div style="float:center; text-align:center">&lt;strong>Описание&lt;/strong>&lt;/div>&lt;/td>&lt;td  class="usercell">&lt;div style="float:center; text-align:center">&lt;strong>Направл.&lt;/strong>&lt;/div>&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell" colspan="3">&lt;div style="float:center; text-align:center">&lt;em>Самый высокий приоритет&lt;/em>&lt;/div>&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">::(унарн)&lt;/td>&lt;td class="usercell">Область видимости&lt;/td>&lt;td  class="usercell">справа&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">::(бинар)&lt;/td>&lt;td class="usercell">Область видимости&lt;/td>&lt;td  class="usercell">слева&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">()&lt;/td>&lt;td class="usercell">Вызов функции&lt;/td>&lt;td  class="usercell">слева&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">[]&lt;/td>&lt;td class="usercell">Выделение элемента массива&lt;/td>&lt;td  class="usercell">слева&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">-&amp;#62;&lt;/td>&lt;td class="usercell">Выделение элемента структуры адресуемой указателем&lt;/td>&lt;td  class="usercell">слева&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">.&lt;/td>&lt;td class="usercell">Выделение элемента структуры или&amp;nbsp;объединения&lt;/td>&lt;td  class="usercell">слева&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">-&amp;#62;*&lt;/td>&lt;td class="usercell">Обращение по&amp;nbsp;адресу объекта к&amp;nbsp;адресу функции объекта&lt;/td>&lt;td  class="usercell">слева&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">.*&lt;/td>&lt;td class="usercell">Обращение через объект к&amp;nbsp;адресу функции объекта&lt;/td>&lt;td  class="usercell">слева&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">++&lt;/td>&lt;td class="usercell">Пост-приращение&lt;/td>&lt;td  class="usercell">справа&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">--&lt;/td>&lt;td class="usercell">Пост-декремент&lt;/td>&lt;td  class="usercell">справа&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">+&lt;/td>&lt;td class="usercell">Унарный плюс&lt;/td>&lt;td  class="usercell">справа&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">-&lt;/td>&lt;td class="usercell">Унарный минус&lt;/td>&lt;td  class="usercell">справа&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">!&lt;/td>&lt;td class="usercell">Логическое отрицание&lt;/td>&lt;td  class="usercell">справа&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">~&lt;/td>&lt;td class="usercell">Побитовое отрицание&lt;/td>&lt;td  class="usercell">справа&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">(тип)&lt;/td>&lt;td class="usercell">Приведение типов: (float)i&lt;/td>&lt;td  class="usercell">справа&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">*&lt;/td>&lt;td class="usercell">Обращение по&amp;nbsp;адресу переменной&lt;/td>&lt;td  class="usercell">справа&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">&amp;&lt;/td>&lt;td class="usercell">Определение адреса переменной&lt;/td>&lt;td  class="usercell">справа&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">sizeof&lt;/td>&lt;td class="usercell">Определение размера, в&amp;nbsp;байтах&lt;/td>&lt;td  class="usercell">справа&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">*&lt;/td>&lt;td class="usercell">Умножение&lt;/td>&lt;td  class="usercell">слева&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">/&lt;/td>&lt;td class="usercell">Деление&lt;/td>&lt;td  class="usercell">слева&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">%&lt;/td>&lt;td class="usercell">Остаток от&amp;nbsp;деления&lt;/td>&lt;td  class="usercell">слева&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">+&lt;/td>&lt;td class="usercell">Сумма&lt;/td>&lt;td  class="usercell">слева&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">-&lt;/td>&lt;td class="usercell">Разность&lt;/td>&lt;td  class="usercell">слева&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">&amp;#60;&amp;#60;&lt;/td>&lt;td class="usercell">Сдвиг влево&lt;/td>&lt;td  class="usercell">слева&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">&amp;#62;&amp;#62;&lt;/td>&lt;td class="usercell">Сдвиг вправо&lt;/td>&lt;td  class="usercell">слева&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">&amp;#60;&lt;/td>&lt;td class="usercell">Меньше&lt;/td>&lt;td  class="usercell">слева&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">&amp;#60;=&lt;/td>&lt;td class="usercell">Меньше и&amp;nbsp;равно&lt;/td>&lt;td  class="usercell">слева&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">&amp;#62;&lt;/td>&lt;td class="usercell">Больше&lt;/td>&lt;td  class="usercell">слева&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">&amp;#62;=&lt;/td>&lt;td class="usercell">Больше и&amp;nbsp;равно&lt;/td>&lt;td  class="usercell">слева&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">==&lt;/td>&lt;td class="usercell">Равно&lt;/td>&lt;td  class="usercell">слева&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">!=&lt;/td>&lt;td class="usercell">Неравно&lt;/td>&lt;td  class="usercell">слева&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">&amp;&lt;/td>&lt;td class="usercell">Поразрядный &amp;laquo;И&amp;raquo;&lt;/td>&lt;td  class="usercell">слева&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">^&lt;/td>&lt;td class="usercell">Поразрядный &amp;laquo;исключающий ИЛИ&amp;raquo;&lt;/td>&lt;td  class="usercell">слева&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">&amp;#124;&lt;/td>&lt;td class="usercell">Поразрядный &amp;laquo;ИЛИ&amp;raquo;&lt;/td>&lt;td  class="usercell">слева&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">&amp;&amp;&lt;/td>&lt;td class="usercell">Логический &amp;laquo;И&amp;raquo;&lt;/td>&lt;td  class="usercell">слева&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">&amp;#124;&amp;#124;&lt;/td>&lt;td class="usercell">Логический &amp;laquo;ИЛИ&amp;raquo;&lt;/td>&lt;td  class="usercell">слева&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">?:&lt;/td>&lt;td class="usercell">Условная операция(int i=(val&amp;gt;=0)?val:-val;)&lt;/td>&lt;td  class="usercell">справа&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">=&lt;/td>&lt;td class="usercell">Присваивание&lt;/td>&lt;td  class="usercell">справа&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">+=, -=, *=, /=, %=, &amp;#124;=, &amp;=, &amp;lt;=, &amp;gt;=&lt;/td>&lt;td class="usercell">Составное присваивание&lt;/td>&lt;td  class="usercell">справа&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">,&lt;/td>&lt;td class="usercell">Операция последования (последовательность выполнения)&lt;/td>&lt;td  class="usercell">слева&lt;/td>&lt;/tr>
&lt;/table>&lt;a name="h1524-31">&lt;/a>&lt;h3>1.6 Операторы&lt;/h3>&lt;a name="h1524-32">&lt;/a>&lt;h4>1.6.1  C&lt;/h4>
&lt;strong>break&lt;/strong>&lt;br />
Прекращает выполнение ближайшего внешнего оператора: do, for, switch или&amp;nbsp;while. &lt;br />
&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
for(;;)&amp;nbsp;{&amp;nbsp;printf("TEST");&amp;nbsp;break;&amp;nbsp;}&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;br />
&lt;strong>case&lt;/strong>&lt;br />
Оценивает &amp;lt;выражение&amp;gt; и&amp;nbsp;выполняет любое утверждение, связанное с&amp;nbsp;&amp;lt;постоянной-выражением&amp;gt;. Если не&amp;nbsp;имеется никакого соответствия с&amp;nbsp;постоянным выражением, то&amp;nbsp;выполняется связанное с&amp;nbsp;заданным по&amp;nbsp;умолчанию ключевым словом. Если заданное по&amp;nbsp;умолчанию ключевое слово не&amp;nbsp;используется, управление переходит к&amp;nbsp;утверждению после блока переключателя.&lt;br />
&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
switch(i)&lt;br />{&lt;br />&amp;nbsp;&amp;nbsp;case&amp;nbsp;1:&amp;nbsp;printf&amp;nbsp;"Val&amp;nbsp;1";&amp;nbsp;break;&lt;br />&amp;nbsp;&amp;nbsp;case&amp;nbsp;2:&amp;nbsp;printf&amp;nbsp;"Val&amp;nbsp;2";&amp;nbsp;break;&lt;br />&amp;nbsp;&amp;nbsp;default:&amp;nbsp;printf&amp;nbsp;"Other";&lt;br />}&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;br />
&lt;strong>continue&lt;/strong>&lt;br />
Передает управление в&amp;nbsp;начало оператора цикла do, for, или&amp;nbsp;while вызывая следующую итерацию.&lt;br />
&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
for(i=0;i&amp;lt;2;i++){printf("test");&amp;nbsp;continue;&amp;nbsp;exit(1);}&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;br />
 &lt;br />
&lt;strong>default&lt;/strong>&lt;br />
Используется в&amp;nbsp;switch для&amp;nbsp;выполнения действий неудовлетворяющим ни&amp;nbsp;одному условию. &lt;br />
 &lt;br />
&lt;strong>do&lt;/strong>&lt;br />
&lt;em>do оператор while(выражение);&lt;/em>&lt;br />
Выполняет &amp;lt;оператор&amp;gt;, пока &amp;lt;выражение&amp;gt; истинно. Условие проверяется в&amp;nbsp;конце цикла.&lt;br />
 &lt;br />
&lt;strong>else&lt;/strong>&lt;br />
&lt;em>if (выражение) выражение1; [else выражение2;]&lt;/em>&lt;br />
Выполняет &amp;lt;выражение2&amp;gt; если &amp;lt;выражение&amp;gt; не&amp;nbsp;истинно.&lt;br />
 &lt;br />
**for((&lt;br />
&lt;em>for(init-expr; cond-expr; increment) оператор;&lt;/em>&lt;br />
Выполняет &amp;lt;оператор&amp;gt;, пока инициализированное число &amp;lt;init-expr&amp;gt;, над&amp;nbsp;которым производится операция &amp;lt;increment&amp;gt;, удовлетворяет условному выражению &amp;lt;cond-expr&amp;gt;.&lt;br />
 &lt;br />
&lt;strong>goto&lt;/strong>&lt;br />
Оператор безусловного перехода. Управления передается на&amp;nbsp;оператор с&amp;nbsp;меткой &amp;lt;имя:&amp;gt;.&lt;br />
&lt;strong>if&lt;/strong>&lt;br />
&lt;em>if (выражение) выражение1; [else выражение2;]&lt;/em>&lt;br />
Выполняет &amp;lt;выражение1&amp;gt;, если &amp;lt;выражение&amp;gt; истинно (отлично от&amp;nbsp;нуля). Если else присутствует, и&amp;nbsp;&amp;lt;выражение&amp;gt; &amp;ndash; ложно (нуль), выполняется &amp;lt;выражение2&amp;gt;. После выполнения &amp;lt;выражение1&amp;gt; или&amp;nbsp;&amp;lt;выражение2 &amp;gt;, управление переходит к&amp;nbsp;следующему оператору.&lt;br />
 &lt;br />
&lt;strong>longjmp&lt;/strong>&lt;br />
&lt;em>void longjmp(jmp_buf env, int&amp;nbsp;value);&lt;/em>&lt;br />
Передает управление по&amp;nbsp;адресу &amp;lt;env&amp;gt; с&amp;nbsp;порядковым номером &amp;lt;value&amp;gt;.&lt;br />
 &lt;br />
&lt;strong>return&lt;/strong>&lt;br />
Прекращает выполнение текущей функции и&amp;nbsp;возвращает управление вызывающей программе, с&amp;nbsp;возможностью передачи значения выражения. &lt;br />
 &lt;br />
&lt;strong>setjmp&lt;/strong>&lt;br />
&lt;em>int setjmp(jmp_buf env);&lt;/em>&lt;br />
Запоминает в&amp;nbsp;&amp;lt;env&amp;gt; адрес текущего места в&amp;nbsp;программе для&amp;nbsp;дальнейшего возврата к&amp;nbsp;нему посредством longjmp. Функция возвращает порядковый номер сохраненного адреса начиная с&amp;nbsp;&amp;#8220;0&amp;#8221;.&lt;br />
 &lt;br />
&lt;strong>switch&lt;/strong>&lt;br />
Сравнивает &amp;lt;выражение&amp;gt; с&amp;nbsp;константами во&amp;nbsp;всех вариантах case и&amp;nbsp;выполняет оператор связанный с&amp;nbsp;&amp;lt;постоянной-выражением&amp;gt;. Если отсутствует соответствия с&amp;nbsp;постоянных с&amp;nbsp;выражениями то&amp;nbsp;выполняется утверждение, связанное с&amp;nbsp;ключевым словом default. Если ключевое слово default не&amp;nbsp;используется то&amp;nbsp;управление переходит к&amp;nbsp;утверждению после блока переключателя. &lt;br />
&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
switch(выражение){&amp;nbsp;&lt;br />&amp;nbsp;case&amp;nbsp;константа1:&amp;nbsp;выражение1;&amp;nbsp;[break;]&amp;nbsp;&lt;br />&amp;nbsp;case&amp;nbsp;константа(n):&amp;nbsp;выражение(n);&amp;nbsp;[break;]&amp;nbsp;&lt;br />&amp;nbsp;[default:&amp;nbsp;выражение(n+1);]&amp;nbsp;&lt;br />}&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;br />
 &lt;br />
&lt;strong>while&lt;/strong>&lt;br />
&lt;em>while(выражение) оператор;&lt;/em>&lt;br />
Выполняет &amp;lt;оператор&amp;gt;, пока &amp;lt;выражение&amp;gt; истинно. &lt;br />
 &lt;a name="h1524-33">&lt;/a>&lt;h4>1.6.2  C++&lt;/h4>
&lt;strong>explicit&lt;/strong>&lt;br />
Ставится перед конструктором объекта и&amp;nbsp;предотвращает использование конструктора для&amp;nbsp;неявного преобразования типов. &lt;br />
 &lt;br />
&lt;strong>namespace&lt;/strong>&lt;br />
Назначение области действия имён: &lt;br />
&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
namespace&amp;nbsp;Example&amp;nbsp;{&amp;nbsp;int&amp;nbsp;myvar;&amp;nbsp;}&amp;nbsp;&lt;br />&amp;nbsp;k&amp;nbsp;=&amp;nbsp;Example::myvar;&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;br />
 &lt;br />
&lt;strong>this&lt;/strong>&lt;br />
Содержит указатель на&amp;nbsp;собственный объект класса (т.е на&amp;nbsp;себя); &lt;br />
 &lt;br />
&lt;strong>typeid&lt;/strong>&lt;br />
Возвращает ссылку на&amp;nbsp;объект type_info. Объект type_info &amp;ndash; это&amp;nbsp;поддерживаемый системой объект, представляющий тип. &lt;br />
&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
const&amp;nbsp;char&amp;nbsp;*dataType&amp;nbsp;=&amp;nbsp;typeid(T).name();&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;br />
 &lt;br />
&lt;strong>typename&lt;/strong>&lt;br />
Указывает, что&amp;nbsp;следующий за&amp;nbsp;ним идентификатор обозначает тип. Обычно используется внутри шаблонов. &lt;br />
 &lt;br />
&lt;strong>using&lt;/strong>&lt;br />
Делает глубоковложенную команду, со&amp;nbsp;специальной областью видимости, видимой по&amp;nbsp;умолчанию: &lt;br />
&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
using&amp;nbsp;std::cout;&amp;nbsp;&lt;br />&amp;nbsp;cout&amp;nbsp;&amp;lt;&amp;lt;&amp;nbsp;"test";&amp;nbsp;&lt;br />&amp;nbsp;using&amp;nbsp;namespace&amp;nbsp;math;&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;a name="h1524-34">&lt;/a>&lt;h5>Операторы преобразования типов&lt;/h5>
&lt;strong>static_cast&lt;/strong>&lt;br />
Выполняет стандартные преобразования (статическое): &lt;br />
&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
int&amp;nbsp;x&amp;nbsp;=&amp;nbsp;static_cast&amp;lt;int&amp;gt;(d);&amp;nbsp;&lt;br />&amp;nbsp;string&amp;nbsp;s&amp;nbsp;=&amp;nbsp;static_cast&amp;lt;string&amp;gt;("ch_string");&amp;nbsp;&lt;br />&amp;nbsp;derivedPtr&amp;nbsp;=&amp;nbsp;static_cast&amp;lt;DerivedClass&amp;nbsp;*&amp;gt;(basePtr);&amp;nbsp;(преобразование&amp;nbsp;потомка&amp;nbsp;к&amp;nbsp;базовому&amp;nbsp;классу)&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;br />
 &lt;br />
&lt;strong>dynamic_cast&lt;/strong>&lt;br />
Выполняет динамическое приведение, иными словами, в&amp;nbsp;процессе выполнения с&amp;nbsp;проверкой возможности приведения. Можно использовать для&amp;nbsp;программной проверки типа наследника из&amp;nbsp;базового класса. &lt;br />
&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
cylinderPtr&amp;nbsp;=&amp;nbsp;dynamic_cast&amp;lt;const&amp;nbsp;Cylinder&amp;nbsp;*&amp;gt;(shapePtr);&amp;nbsp;&lt;br />&amp;nbsp;if(cylinderPtr&amp;nbsp;!=&amp;nbsp;NULL)&amp;nbsp;shapePtr-&amp;gt;area();&amp;nbsp;//Цилиндр&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;br />
 &lt;br />
&lt;strong>const_cast&lt;/strong>&lt;br />
Используется для&amp;nbsp;снятия константности или&amp;nbsp;volatile путём приведения: &lt;br />
&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
const_cast&amp;lt;const&amp;nbsp;CastTest&amp;nbsp;*&amp;gt;(this)-&amp;gt;number-;&amp;nbsp;(при&amp;nbsp;вызове&amp;nbsp;из&amp;nbsp;константной&amp;nbsp;функции)&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;br />
 &lt;br />
&lt;strong>reinterpret_cast&lt;/strong>&lt;br />
Для&amp;nbsp;нестандартных преобразований: &lt;br />
&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
count&amp;nbsp;&amp;lt;&amp;lt;&amp;nbsp;*reintepret_cast&amp;lt;char&amp;nbsp;*&amp;gt;(ptr)&amp;nbsp;«&amp;nbsp;endl;&amp;nbsp;(преобразует&amp;nbsp;(int&amp;nbsp;*)&amp;nbsp;в&amp;nbsp;(char&amp;nbsp;*)&amp;nbsp;и&amp;nbsp;разыменовует)&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;a name="h1524-35">&lt;/a>&lt;h5>Ключевые слова-операторы&lt;/h5>
Стандарт языка C++ предоставляет ключевые слова-операторы, которые могут использоваться вместо нескольких операторов C++ (табл.6).&lt;br />
Таблица 6. &lt;strong>Ключевые слова-операторы языка С++&lt;/strong> &lt;br />
&lt;table class="usertable" border="1">
&lt;tr class="userrow">&lt;td class="usercell">&lt;div style="float:center; text-align:center">&lt;strong>Оператор&lt;/strong>&lt;/div>&lt;/td>&lt;td class="usercell">&lt;div style="float:center; text-align:center">&lt;strong>Слово-оператор&lt;/strong>&lt;/div>&lt;/td>&lt;td  class="usercell">&lt;div style="float:center; text-align:center">&lt;strong>Описание&lt;/strong>&lt;/div>&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell" colspan="3">&lt;div style="float:center; text-align:center">&lt;strong>Логические операторы-ключевые слова&lt;/strong>&lt;/div>&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">&amp;&amp;&lt;/td>&lt;td class="usercell">and&lt;/td>&lt;td  class="usercell">логическое И&amp;nbsp;(AND)&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">&amp;#124;&amp;#124;&lt;/td>&lt;td class="usercell">or&lt;/td>&lt;td  class="usercell">логическое ИЛИ&amp;nbsp;(OR)&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">!&lt;/td>&lt;td class="usercell">not&lt;/td>&lt;td  class="usercell">логическое НЕ&amp;nbsp;(NOT)&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell" colspan="3">&lt;div style="float:center; text-align:center">&lt;strong>Оператор &amp;laquo;не равно&amp;raquo;-ключевое слово&lt;/strong>&lt;/div>&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">!=&lt;/td>&lt;td class="usercell">not_eq&lt;/td>&lt;td  class="usercell">не равно&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell" colspan="3">&lt;div style="float:center; text-align:center">&lt;strong>Побитовые операторы-ключевые слова&lt;/strong>&lt;/div>&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">&amp;&lt;/td>&lt;td class="usercell">bitand&lt;/td>&lt;td  class="usercell">побитовое И&amp;nbsp;(AND)&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">&amp;#124;&lt;/td>&lt;td class="usercell">bitor&lt;/td>&lt;td  class="usercell">побитовое включающее ИЛИ&amp;nbsp;(OR)&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">^&lt;/td>&lt;td class="usercell">xor&lt;/td>&lt;td  class="usercell">побитовое исключающее ИЛИ&amp;nbsp;(OR)&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">&amp;#126;&lt;/td>&lt;td class="usercell">compl&lt;/td>&lt;td  class="usercell">побитовое инвертирование разрядов&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell" colspan="3">&lt;div style="float:center; text-align:center">&lt;strong>Побитовые операторы присваивания-ключевые слова&lt;/strong>&lt;/div>&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">&amp;=&lt;/td>&lt;td class="usercell">and_eq&lt;/td>&lt;td  class="usercell">побитовое И&amp;nbsp;(AND) и&amp;nbsp;присваивание&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">&amp;#124;=&lt;/td>&lt;td class="usercell">or_eq&lt;/td>&lt;td  class="usercell">побитовое включающее ИЛИ&amp;nbsp;(OR) и&amp;nbsp;присваивание&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">^=&lt;/td>&lt;td class="usercell">xor_eq&lt;/td>&lt;td  class="usercell">побитовое исключающее ИЛИ&amp;nbsp;(OR) и&amp;nbsp;присваивание&lt;/td>&lt;/tr>
&lt;/table>&lt;a name="h1524-36">&lt;/a>&lt;h3>1.7 Спецификаторы класса памяти&lt;/h3>
&lt;strong>auto&lt;/strong>&lt;br />
Указывающий на&amp;nbsp;то, что&amp;nbsp;переменная имеет локальную (автоматическую) протяженность. Разрушается при&amp;nbsp;выходе из&amp;nbsp;функции.&lt;br />
 &lt;br />
&lt;strong>register&lt;/strong>&lt;br />
Определяет, что&amp;nbsp;переменная должна быть, если возможно, сохранена в&amp;nbsp;машинном регистре.&lt;br />
 &lt;br />
&lt;strong>extern&lt;/strong>&lt;br />
Определяет переменную которая должна быть видна в&amp;nbsp;других объектных модулях.&lt;br />
 &lt;br />
&lt;strong>mutable&lt;/strong>&lt;br />
Определяет в&amp;nbsp;классе переменную которую можно модифицировать даже из&amp;nbsp;константной функции. &lt;br />
 &lt;br />
&lt;strong>static&lt;/strong>&lt;br />
Объявляет переменную которая будет являться одной для&amp;nbsp;всех экземпляров функции и&amp;nbsp;которая инициализируется при&amp;nbsp;запуске программы. Статические функции объектов определяются в&amp;nbsp;одном экземпляре и&amp;nbsp;становятся видимыми за&amp;nbsp;пределы класса владельца. Кроме того статическая функция член не&amp;nbsp;может являться константной и&amp;nbsp;имеют доступ только к&amp;nbsp;статическим полям. Static в&amp;nbsp;глобальном отношении может использоваться для&amp;nbsp;ограничения области действия переменной пределами одного файла. &lt;br />
&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
static&amp;nbsp;int&amp;nbsp;getCount();&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;a name="h1524-37">&lt;/a>&lt;h3>1.8 Препроцессор&lt;/h3>
Препроцессор это&amp;nbsp;часть языка С. Препроцессор считывает исходный код, отвечает на&amp;nbsp;размещенные в&amp;nbsp;нем директивы и&amp;nbsp;производит модифицированную версию этого исходного кода, которая передаётся компилятору. Подстановки препроцессором выполняются рекурсивно, т.е выполняется многопроходная обработка.&lt;br />
&lt;ul>&lt;li> Определение/удаление макроса. Макрос может быть определён без&amp;nbsp;значения и&amp;nbsp;может использоваться в&amp;nbsp;качестве проверяемого флага. 
&lt;/li>&lt;/ul>&lt;div class="indent">&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
#define&amp;nbsp;VAL_T&amp;nbsp;345&lt;br />&amp;nbsp;#undef&amp;nbsp;VAL_T&lt;br />&amp;nbsp;#define&amp;nbsp;VAL_T&amp;nbsp;234&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;br />
&lt;/div>&lt;ul>&lt;li> Для&amp;nbsp;перевода на&amp;nbsp;другую строку используется  ";\" : 
&lt;/li>&lt;/ul>&lt;div class="indent">&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
#define&amp;nbsp;FILLSCREAN(color)&amp;nbsp;_AX&amp;nbsp;=&amp;nbsp;0x0600;\&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_CX&amp;nbsp;=&amp;nbsp;0x0000;\&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_DX&amp;nbsp;=&amp;nbsp;0x184f;\&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_BH&amp;nbsp;=&amp;nbsp;color;\&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;geninterrupt(0x10);&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;br />
&lt;/div>&lt;ul>&lt;li> Использование параметров:
&lt;/li>&lt;/ul>&lt;div class="indent">&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
#define&amp;nbsp;min(a,b)&amp;nbsp;((a)&amp;nbsp;&amp;lt;&amp;nbsp;(b)&amp;nbsp;?&amp;nbsp;(a)&amp;nbsp;:&amp;nbsp;(b))&lt;br />&amp;nbsp;result&amp;nbsp;=&amp;nbsp;min(44,uplimit);&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br />&amp;nbsp;//&amp;nbsp;result&amp;nbsp;=&amp;nbsp;((44)&amp;nbsp;&amp;lt;&amp;nbsp;(uplimit)&amp;nbsp;?&amp;nbsp;(44)&amp;nbsp;:&amp;nbsp;(uplimit));&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;br />
&lt;/div>&lt;ul>&lt;li> Для&amp;nbsp;объединения формальных параметров используются символы ##: 
&lt;/li>&lt;/ul>&lt;div class="indent">&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
#define&amp;nbsp;var(&amp;nbsp;i&amp;nbsp;,&amp;nbsp;j&amp;nbsp;)&amp;nbsp;(&amp;nbsp;i##j&amp;nbsp;)&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;var(&amp;nbsp;x&amp;nbsp;,&amp;nbsp;6&amp;nbsp;)&amp;nbsp;=&amp;nbsp;x6&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;br />
&lt;/div>&lt;ul>&lt;li> Для&amp;nbsp;преобразования фактического параметра в&amp;nbsp;строку используется символ # который помещается перед формальным макропараметром:
&lt;/li>&lt;/ul>&lt;div class="indent">&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
#define&amp;nbsp;TRACE(flag)&amp;nbsp;printf(#flag&amp;nbsp;"=%d\n",&amp;nbsp;flag)&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;/div>
 &lt;br />
&lt;ul>&lt;li> Вариантный макрос (...):
&lt;/li>&lt;/ul>&lt;div class="indent">&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
#define&amp;nbsp;err(...)&amp;nbsp;fprintf(stderr,__VA_ARGS__)&lt;br />&amp;nbsp;err("%s&amp;nbsp;%d\n","The&amp;nbsp;error&amp;nbsp;code&amp;nbsp;",48);&amp;nbsp;&lt;br />&amp;nbsp;//&amp;nbsp;fprintf(stderr,"%s&amp;nbsp;%d\n","The&amp;nbsp;error&amp;nbsp;code&amp;nbsp;",48);&lt;br />&amp;nbsp;#define&amp;nbsp;errout(a,b,...)&amp;nbsp;\&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fprintf(stderr,"File&amp;nbsp;%s&amp;nbsp;&amp;nbsp;Line&amp;nbsp;%d\n",a,b);&amp;nbsp;\&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fprintf(stderr,__VA_ARGS__)&lt;br />&amp;nbsp;errout(__FILE__,__LINE__,"Unexpected&amp;nbsp;termination\n");&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;/div>&lt;a name="h1524-38">&lt;/a>&lt;h4>1.8.1 Директивы Препроцессора&lt;/h4>
&lt;strong>_Pragma&lt;/strong>&lt;br />
&lt;em>_Pragma(&amp;laquo;GCC poison printf&amp;raquo;)&lt;/em>&lt;br />
Оператор для&amp;nbsp;вызова прагмы из&amp;nbsp;тела макроса (табл.7). &lt;br />
 &lt;br />
&lt;strong>#define&lt;/strong>&lt;br />
&lt;em>#define ident ident1;&lt;/em>&lt;br />
Заменяет все&amp;nbsp;последующие определения &amp;lt;ident&amp;gt; на&amp;nbsp;лексему &amp;lt;ident1&amp;gt; (совокупность лексем). &lt;br />
 &lt;br />
&lt;strong>#elif, #if&lt;/strong>&lt;br />
&lt;em>#if expresion&lt;/em>&lt;br />
&lt;em>#elif expresion1&lt;/em>&lt;br />
&lt;em>#endif&lt;/em>&lt;br />
Проверяет выражение &amp;lt;expresion&amp;gt;, связанное с&amp;nbsp;директивами #if, или&amp;nbsp;#elif,  если выражение истинно (отличный от&amp;nbsp;нуля), то&amp;nbsp;выполняются следующие строки до&amp;nbsp;директив условия или&amp;nbsp;конца условий. Директива #elif является объединением директив #else и&amp;nbsp;#if. Если имеется #else, то&amp;nbsp;нижестоящие строки выполняются когда выражение в&amp;nbsp;#if или&amp;nbsp;#elif имеет нулевое значение. Нельзя использовать в&amp;nbsp;качестве условия оператор sizeof, составные типы, float или&amp;nbsp;enum типы. &lt;br />
 &lt;br />
&lt;strong>defined&lt;/strong>&lt;br />
&lt;em>#if defined(VAR)&lt;/em>&lt;br />
&lt;em>#elif !defined(NVAR)&lt;/em>&lt;br />
&lt;em>#endif&lt;/em>&lt;br />
Оператор проверки определённости, используется в&amp;nbsp;паре с&amp;nbsp;#if. &lt;br />
 &lt;br />
&lt;strong>#else&lt;/strong>&lt;br />
Нижестоящие строки выполняются если выражение в&amp;nbsp;#if, #ifdef, #ifndef или&amp;nbsp;#elif имеет нулевое значение.&lt;br />
 &lt;br />
&lt;strong>#endif&lt;/strong>&lt;br />
Указывает на&amp;nbsp;конец условия. &lt;br />
 &lt;br />
&lt;strong>#error&lt;/strong>&lt;br />
&lt;em>#error сообщение&lt;/em>&lt;br />
Генерация сообщения ошибки на&amp;nbsp;stderr и&amp;nbsp;завершения процесса компиляции. &lt;br />
 &lt;br />
&lt;strong>#ifdef&lt;/strong>&lt;br />
&lt;em>#ifdef &amp;lt;identifier&amp;gt;&lt;/em>&lt;br />
Выполняет последующие строки до&amp;nbsp;#endif, если &amp;lt;identifier&amp;gt; был&amp;nbsp;ранее определен. &lt;br />
 &lt;br />
&lt;strong>#ifndef&lt;/strong>&lt;br />
&lt;em>#ifndef &amp;lt;identifier&amp;gt;&lt;/em>&lt;br />
Выполняет последующие строки до&amp;nbsp;#endif, если &amp;lt;identifier&amp;gt; не&amp;nbsp;был ранее определён. &lt;br />
 &lt;br />
&lt;strong>#include&lt;/strong>&lt;br />
&lt;em>#include &amp;lt;filename&amp;gt;&lt;/em>&lt;br />
Вставляет содержимое файла &amp;lt;filename&amp;gt; в&amp;nbsp;текущий файл. Если путь к&amp;nbsp;имени файла включен в&amp;nbsp;двойные кавычки, то&amp;nbsp;поиск осуществляется внутри текущего каталога. &lt;br />
 &lt;br />
&lt;strong>#include_next&lt;/strong>&lt;br />
&lt;em>#include_next &amp;lt;filename&amp;gt;&lt;/em>&lt;br />
&lt;span class="cite">?&lt;/span>&lt;br />
 &lt;br />
&lt;strong>#line&lt;/strong>&lt;br />
&lt;em>#line n&amp;nbsp;file&lt;/em>&lt;br />
Изменяет внутренний номер строки компилятора на&amp;nbsp;&amp;lt;n&amp;gt;, а&amp;nbsp;также изменяет внутреннее имя&amp;nbsp;файла на&amp;nbsp;&amp;lt;file&amp;gt;. Текущий номер строки и&amp;nbsp;имя файла доступны через константы препроцессора &amp;#95;&amp;#95;LINE&amp;#95;&amp;#95; и&amp;nbsp;&amp;#95;&amp;#95;FILE&amp;#95;&amp;#95;. &lt;br />
 &lt;br />
&lt;strong>#pragma&lt;/strong>&lt;br />
&lt;em>#pragma directives&lt;/em>&lt;br />
Инструктирует компилятор, о&amp;nbsp;выполнение машинно-специфических возможностей, определенных параметром &amp;lt;directives&amp;gt; (таблица [*]). &lt;br />
 &lt;br />
&lt;strong>#undef&lt;/strong>&lt;br />
&lt;em>#undef identifier&lt;/em>&lt;br />
Удаляет текущее определение &amp;lt;identifier&amp;gt;, который был&amp;nbsp;предварительно определен директивой #define. &lt;br />
 &lt;br />
&lt;strong>#warning&lt;/strong>&lt;br />
&lt;em>#warning сообщение&lt;/em>&lt;br />
Генерация сообщения предупреждения на&amp;nbsp;stderr и&amp;nbsp;продолжение компиляции. &lt;br />
Таблица 7. &lt;strong>Параметры директивы pragma, препроцессора&lt;/strong>&lt;br />
&lt;table class="usertable" border="1">
&lt;tr class="userrow">&lt;td class="usercell">&lt;div style="float:center; text-align:center">&lt;strong>Имя&lt;/strong>&lt;/div>&lt;/td>&lt;td  class="usercell">&lt;div style="float:center; text-align:center">&lt;strong>Назначение&lt;/strong>&lt;/div>&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">pack&lt;/td>&lt;td  class="usercell">Определяет, как&amp;nbsp;компилятор выравнивает данные при&amp;nbsp;сохранении в&amp;nbsp;памяти. Может также использоваться с, вталкиванием и&amp;nbsp;выталкиванием параметров.&lt;br />
&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;font color="#000000">
#pragma&amp;nbsp;pack(n)&amp;nbsp;&lt;br />#pragma&amp;nbsp;pack(push,&amp;nbsp;n)&amp;nbsp;&lt;br />#pragma&amp;nbsp;pack(pop)&lt;/font>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;/td>&lt;/tr>
&lt;/table>
Таблица 8. &lt;strong>Предопределённые символьные константы&lt;/strong>&lt;br />
&lt;table class="usertable" border="1">
&lt;tr class="userrow">&lt;td class="usercell">&lt;div style="float:center; text-align:center">&lt;strong>Имя&lt;/strong>&lt;/div>&lt;/td>&lt;td  class="usercell">&lt;div style="float:center; text-align:center">&lt;strong>Назначение&lt;/strong>&lt;/div>&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">&amp;#95;&amp;#95;BASE_FILE&amp;#95;&amp;#95;&lt;/td>&lt;td  class="usercell">Полный путь к&amp;nbsp;каталогу исходного файла.&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">&amp;#95;&amp;#95;CHAR_UNSIGNED&amp;#95;&amp;#95;&lt;/td>&lt;td  class="usercell">Указывает на&amp;nbsp;то, что&amp;nbsp;символьный тип&amp;nbsp;является безнаковым.&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">&amp;#95;&amp;#95;cplusplus&lt;/td>&lt;td  class="usercell">Указывает на&amp;nbsp;то, что&amp;nbsp;исходный код&amp;nbsp;является программой на&amp;nbsp;языке С++.&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">&amp;#95;&amp;#95;DATE&amp;#95;&amp;#95;&lt;/td>&lt;td  class="usercell">Дата компиляции исходного файла (строка).&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">&amp;#95;&amp;#95;FILE&amp;#95;&amp;#95;&lt;/td>&lt;td  class="usercell">Имя исходного файла (строка).&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">&amp;#95;&amp;#95;func&amp;#95;&amp;#95;&lt;/td>&lt;td  class="usercell">Имя текущей функции.&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">&amp;#95;&amp;#95;FUNCTION&amp;#95;&amp;#95;&lt;/td>&lt;td  class="usercell">Имя текущей функции.&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">&amp;#95;&amp;#95;PRETTY_FUNCTION&amp;#95;&amp;#95;&lt;/td>&lt;td  class="usercell">Полное имя&amp;nbsp;текущей функции. Для&amp;nbsp;C++ включает имена классов.&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">&amp;#95;&amp;#95;INCLUDE_LEVEL&amp;#95;&amp;#95;&lt;/td>&lt;td  class="usercell"> Глубина включения (include) файла.&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">&amp;#95;&amp;#95;LINE&amp;#95;&lt;/td>&lt;td  class="usercell">Номер текущей строки исходного текста (целое число).&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">&amp;#95;&amp;#95;NO_INLINE&amp;#95;&amp;#95;&lt;/td>&lt;td  class="usercell">Указывает на&amp;nbsp;отсутствие inline-функций.&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">&amp;#95;&amp;#95;OBJC&amp;#95;&amp;#95;&lt;/td>&lt;td  class="usercell">Программа на&amp;nbsp;языке Objective-C.&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">&amp;#95;&amp;#95;OPTIMIZE&amp;#95;&amp;#95;&lt;/td>&lt;td  class="usercell">Указывает на&amp;nbsp;то, что&amp;nbsp;назначен уровень оптимизации.&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">&amp;#95;&amp;#95;OPTIMIZE_SIZE&amp;#95;&amp;#95;&lt;/td>&lt;td  class="usercell">Оптимизация размера программы.&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">&amp;#95;&amp;#95;STDC&amp;#95;&amp;#95;&lt;/td>&lt;td  class="usercell">Компилятор соответствует правилам стандарта языка C.&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">&amp;#95;&amp;#95;TIME&amp;#95;&amp;#95;&lt;/td>&lt;td  class="usercell">Время компиляции исходного файла (строка).&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">&amp;#95;&amp;#95;VERSION&amp;#95;&amp;#95;&lt;/td>&lt;td  class="usercell">Полный номер версии.&lt;/td>&lt;/tr>
&lt;/table>&lt;a name="h1524-39">&lt;/a>&lt;h3>1.9 Стандартные заголовочные файлы&lt;/h3>
&lt;strong>assert.h | cassert (ANSI)&lt;/strong>&lt;br />
Содержит макросы и&amp;nbsp;информацию, для&amp;nbsp;дополнительной диагностики, помогающей при&amp;nbsp;отладке программы. &lt;br />
 &lt;br />
&lt;strong>bios.h (DOS)&lt;/strong>&lt;br />
BIOS сервисные функции (INT 10). &lt;br />
 &lt;br />
&lt;strong>conio.h (DOS)&lt;/strong>&lt;br />
Подпрограммы Ввода &amp;ndash; вывода. &lt;br />
 &lt;br />
&lt;strong>ctipe.h | cctype (ANSI)&lt;/strong>&lt;br />
Символьная классификация. &lt;br />
 &lt;br />
&lt;strong>dirent.h (ANSI)&lt;/strong>&lt;br />
Управление каталогами. &lt;br />
 &lt;br />
&lt;strong>dos.h (DOS)&lt;/strong>&lt;br />
MS-DOS функции (INT 21). &lt;br />
 &lt;br />
&lt;strong>env.h (POSIX)&lt;/strong>&lt;br />
Содержит прототипы для&amp;nbsp;окружений строковых функций. &lt;br />
 &lt;br />
&lt;strong>errno.h (ANSI)&lt;/strong>&lt;br />
Переменные, и&amp;nbsp;утилиты обработки ошибок. &lt;br />
 &lt;br />
&lt;strong>fcntl.h (POSIX)&lt;/strong>&lt;br />
Флажки, используемые в&amp;nbsp;функциях open и&amp;nbsp;sopen. &lt;br />
 &lt;br />
&lt;strong>float.h | cfloat (ANSI)&lt;/strong>&lt;br />
Содержит предельные размеры переменных с&amp;nbsp;плавающей точкой для&amp;nbsp;данной системы. &lt;br />
 &lt;br />
&lt;strong>graph.h (DOS)&lt;/strong>&lt;br />
Программы для&amp;nbsp;работы с&amp;nbsp;графикой низкого уровня. &lt;br />
 &lt;br />
&lt;strong>io.h (DOS)&lt;/strong>&lt;br />
Низкоуровневый ввод-вывод. &lt;br />
 &lt;br />
&lt;strong>limits.h | climits (ANSI)&lt;/strong>&lt;br />
Содержит общие ограничения системы. &lt;br />
 &lt;br />
&lt;strong>locale.h (ANSI)&lt;/strong>&lt;br />
Содержит информацию для&amp;nbsp;выполнения локализации ПО. &lt;br />
 &lt;br />
&lt;strong>malloc.h (ANSI)&lt;/strong>&lt;br />
Содержит прототипы функций распределения памяти. &lt;br />
 &lt;br />
&lt;strong>math.h | cmath (ANSI)&lt;/strong>&lt;br />
Содержит прототипы математических библиотечных функций. &lt;br />
 &lt;br />
&lt;strong>memory.h&lt;/strong>&lt;br />
Подпрограммы манипуляции с&amp;nbsp;буферами. &lt;br />
 &lt;br />
&lt;strong>serach.h&lt;/strong>&lt;br />
Функции поиска и&amp;nbsp;сортировки. &lt;br />
 &lt;br />
&lt;strong>setjmp.h (ANSI)&lt;/strong>&lt;br />
Прототипы Функций setjmp и&amp;nbsp;longjmp (безусловного перехода) &lt;br />
 &lt;br />
&lt;strong>sygnal.h (ANSI)&lt;/strong>&lt;br />
Прототипы функций для&amp;nbsp;работы с&amp;nbsp;сигналами и&amp;nbsp;описание самих сигналов. &lt;br />
 &lt;br />
&lt;strong>stdarg.h (ANSI)&lt;/strong>&lt;br />
Содержит макрокоманды для&amp;nbsp;работы с&amp;nbsp;функциями имеющими список параметров переменной длины. &lt;br />
 &lt;br />
&lt;strong>stdio.h | cstdio (ANSI)&lt;/strong>&lt;br />
Содержит прототипы стандартных библиотечных функций ввода-вывода и&amp;nbsp;используемую ими&amp;nbsp;информацию. &lt;br />
 &lt;br />
&lt;strong>stdlib.h | cstdlib (ANSI)&lt;/strong>&lt;br />
Содержит прототипы функций для&amp;nbsp;преобразования чисел в&amp;nbsp;текст, текста в&amp;nbsp;числа, для&amp;nbsp;выделения памяти, генерации случайных чисел и&amp;nbsp;других полезных операций. &lt;br />
 &lt;br />
&lt;strong>string.h | cstring (ANSI)&lt;/strong>&lt;br />
Содержит прототипы функций для&amp;nbsp;обработки строк стиля C. &lt;br />
 &lt;br />
&lt;strong>strstream.h | strstream (ANSI)&lt;/strong>&lt;br />
Для&amp;nbsp;формирования строк через поток. &lt;br />
 &lt;br />
&lt;strong>time.h | ctime (ANSI)&lt;/strong>&lt;br />
Содержит прототипы функций для&amp;nbsp;работы со&amp;nbsp;временем и&amp;nbsp;датами. &lt;br />
 &lt;br />
&lt;strong>iostream&lt;/strong>&lt;br />
Содержит прототипы функций стандартного ввода и&amp;nbsp;вывода. &lt;br />
 &lt;br />
&lt;strong>iomanip&lt;/strong>&lt;br />
Содержит прототипы функций для&amp;nbsp;операций с&amp;nbsp;потоками, дающие возможность форматировать потоки данных. &lt;br />
 &lt;br />
&lt;strong>fstream&lt;/strong>&lt;br />
Содержит прототипы функций для&amp;nbsp;операций с&amp;nbsp;файловым вводом-выводом. &lt;br />
 &lt;br />
&lt;strong>utility&lt;/strong>&lt;br />
Содержит классы и&amp;nbsp;функции, используемые многими заголовочными файлами стандартной библиотеки. &lt;br />
 &lt;br />
&lt;strong>vector, list, deque, queue, stack, map, set, bitset (STL)&lt;/strong>&lt;br />
Содержат классы которые реализуют контейнеры стандартной библиотеки. &lt;br />
 &lt;br />
&lt;strong>functional&lt;/strong>&lt;br />
Содержит классы и&amp;nbsp;функции, используемые алгоритмами стандартной библиотеки. &lt;br />
 &lt;br />
&lt;strong>memory&lt;/strong>&lt;br />
Содержит классы и&amp;nbsp;функции, используемые стандартной библиотекой для&amp;nbsp;выделения памяти контейнерам стандартной библиотеки. &lt;br />
 &lt;br />
&lt;strong>iterator&lt;/strong>&lt;br />
Содержит классы для&amp;nbsp;доступа к&amp;nbsp;данным в&amp;nbsp;контейнерах стандартной библиотеки. &lt;br />
 &lt;br />
&lt;strong>algorithm&lt;/strong>&lt;br />
Содержит функции для&amp;nbsp;манипулирования данными в&amp;nbsp;контейнерах стандартной библиотеки. &lt;br />
 &lt;br />
&lt;strong>exception, stdexcept&lt;/strong>&lt;br />
Содержат классы использующиеся для&amp;nbsp;обработки исключительных ситуаций. &lt;br />
 &lt;br />
&lt;strong>string&lt;/strong>&lt;br />
Определения класса string из&amp;nbsp;стандартной библиотеки. &lt;br />
 &lt;br />
&lt;strong>sstream&lt;/strong>&lt;br />
Прототипы функций выполняющих ввод из&amp;nbsp;строк в&amp;nbsp;память и&amp;nbsp;наоборот. &lt;br />
 &lt;br />
&lt;strong>locale&lt;/strong>&lt;br />
Содержит классы и&amp;nbsp;функции, используемые потоковой обработкой различных языков. &lt;br />
 &lt;br />
&lt;strong>limits&lt;/strong>&lt;br />
Содержит классы для&amp;nbsp;определения интервалов значений численного типа данных для&amp;nbsp;данной платформы. &lt;br />
 &lt;br />
&lt;strong>typeinfo&lt;/strong>&lt;br />
Содержит классы для&amp;nbsp;идентификации времени выполнения. &lt;a name="h1524-40">&lt;/a>&lt;h2>2 Основные функции языка С/С++ (стандарт ANSI, POSIX)&lt;/h2>&lt;a name="h1524-41">&lt;/a>&lt;h3>2.1 Математические функции (math.h|cmath)&lt;/h3>
&lt;strong>ceil, ceilf, ceill (POSIX)&lt;/strong>&lt;br />
&lt;em>double ceil(double x);&lt;/em>&lt;br />
&lt;em>float ceilf(float x);&lt;/em>&lt;br />
&lt;em>long double ceill(long double x);&lt;/em>&lt;br />
Функции округления до&amp;nbsp;наименьшего целого, не&amp;nbsp;меньшего, чем&amp;nbsp;аргумент. &lt;br />
 &lt;br />
&lt;strong>cos (POSIX)&lt;/strong>&lt;br />
&lt;em>double cos(double x);&lt;/em>&lt;br />
Возвращает значение косинуса x, где&amp;nbsp;x&amp;nbsp;&amp;ndash; это&amp;nbsp;значение в&amp;nbsp;радианах. &lt;br />
 &lt;br />
&lt;strong>exp (POSIX)&lt;/strong>&lt;br />
&lt;em>double exp(double x);&lt;/em>&lt;br />
Возвращает значение числа 'e' возведенного в&amp;nbsp;степень x. &lt;br />
 &lt;br />
&lt;strong>fabs, fabsf, fabsl (POSIX)&lt;/strong>&lt;br />
&lt;em>double fabs(double x);&lt;/em>&lt;br />
&lt;em>float fabsf(float x);&lt;/em>&lt;br />
&lt;em>long double fabsl(long double x);&lt;/em>&lt;br />
Абсолютное значение числа с&amp;nbsp;плавающей точкой. &lt;br />
 &lt;br />
&lt;strong>floor, floorf, floorl (POSIX)&lt;/strong>&lt;br />
&lt;em>double floor(double x);&lt;/em>&lt;br />
&lt;em>float floorf(float x);&lt;/em>&lt;br />
&lt;em>long double floorl(long double x);&lt;/em>&lt;br />
Наибольшее целое значение, но&amp;nbsp;не большее x. &lt;br />
 &lt;br />
&lt;strong>fmod (POSIX)&lt;/strong>&lt;br />
&lt;em>double fmod(double x, double y);&lt;/em>&lt;br />
Функция получения остатка от&amp;nbsp;деления (с плавающей точкой). &lt;br />
 &lt;br />
&lt;strong>log (POSIX)&lt;/strong>&lt;br />
&lt;em>double log(double x);&lt;/em>&lt;br />
Возвращает натуральный логарифм x. &lt;br />
 &lt;br />
&lt;strong>log10 (POSIX)&lt;/strong>&lt;br />
&lt;em>double log10(double x);&lt;/em>&lt;br />
Возвращает десятичный логарифм x. &lt;br />
 &lt;br />
&lt;strong>matherr (ANSI)&lt;/strong>&lt;br />
&lt;em>int matherr(struct expection *error_info);&lt;/em>&lt;br />
Пользовательская функция обработки ошибок математических операций. Описание ошибки передается в&amp;nbsp;указателе на&amp;nbsp;структуру &amp;lt;error_info&amp;gt; &lt;br />
&lt;strong>pow (POSIX)&lt;/strong>&lt;br />
&lt;em>double pow(double x, double y);&lt;/em>&lt;br />
Возвращает значение x&amp;nbsp;в степени y. &lt;br />
 &lt;br />
&lt;strong>rand, srand &amp;lt;stdlib.h&amp;gt;&lt;/strong>&lt;br />
&lt;em>int rand(void);&lt;/em>&lt;br />
&lt;em>void srand(unsigned int&amp;nbsp;seed);&lt;/em>&lt;br />
rand() &amp;ndash; возвращает псевдослучайное число в&amp;nbsp;диапазоне от&amp;nbsp;нуля до&amp;nbsp;RAND_MAX. &lt;br />
srand() &amp;ndash; устанавливает свой аргумент как&amp;nbsp;основу (seed) для&amp;nbsp;новой последовательности псевдослучайных целых чисел, возвращаемых функцией rand(). &lt;br />
 &lt;br />
&lt;strong>sin (POSIX)&lt;/strong>&lt;br />
&lt;em>double sin(double x);&lt;/em>&lt;br />
Возвращает значение синуса аргумента x, где&amp;nbsp;x&amp;nbsp;указан в&amp;nbsp;радианах. &lt;br />
 &lt;br />
&lt;strong>sqrt (POSIX)&lt;/strong>&lt;br />
&lt;em>double sqrt(double x);&lt;/em>&lt;br />
Функция вычисления квадратного корня. &lt;br />
 &lt;br />
&lt;strong>tan (POSIX)&lt;/strong>&lt;br />
&lt;em>double tan(double x);&lt;/em>&lt;br />
Возвращает тангенс аргумента x, где&amp;nbsp;x&amp;nbsp;задан в&amp;nbsp;радианах. &lt;a name="h1524-42">&lt;/a>&lt;h3>2.2 Функции для&amp;nbsp;работы с&amp;nbsp;дисками, директориями и&amp;nbsp;файлами&lt;/h3>&lt;a name="h1524-43">&lt;/a>&lt;h4>2.2.1 Функции потокового ввода-вывода&lt;/h4>
&lt;strong>fopen, fdopen, freopen (ANSI POSIX) &amp;lt;stdio.h&amp;gt;&lt;/strong>&lt;br />
&lt;em>FILE *fopen(const char *path, const char *mode);&lt;/em>&lt;br />
&lt;em>FILE *fdopen(int fildes, const char *mode);&lt;/em>&lt;br />
&lt;em>FILE *freopen(const char *path, const char *mode, FILE *stream);&lt;/em>&lt;br />
fopen &amp;ndash; открывает файл с&amp;nbsp;именем path и&amp;nbsp;связывает его&amp;nbsp;с&amp;nbsp;потоком. &lt;br />
fdopen &amp;ndash; связывает поток с&amp;nbsp;существующим описателем файла &amp;lt;fildes&amp;gt;. &lt;br />
freopen &amp;ndash; открывает файл с&amp;nbsp;именем path и&amp;nbsp;связывает его&amp;nbsp;с&amp;nbsp;потоком stream. Исходный поток (если такой существовал) закрывается. &lt;br />
 &lt;br />
&lt;strong>fclose (ANSI) &amp;lt;stdio.h&amp;gt;&lt;/strong>&lt;br />
&lt;em>int fclose( FILE *stream);&lt;/em>&lt;br />
Закрывает поток &amp;lt;stream&amp;gt;. &lt;br />
 &lt;br />
&lt;strong>feof (ANSI) &amp;lt;stdio.h&amp;gt;&lt;/strong>&lt;br />
&lt;em>int feof(FILE *stream);&lt;/em>&lt;br />
Возвращает не&amp;nbsp;ноль если достигнут конец файла (EOF) потока &amp;lt;stream&amp;gt;.&lt;br />
&lt;strong>fgetc,getchar (ANSI) &amp;lt;stdio.h&amp;gt;&lt;/strong>&lt;br />
&lt;em>int fgetc(FILE *stream);&lt;/em>&lt;br />
&lt;em>int getchar(void);&lt;/em>&lt;br />
Считывает очередной символ из&amp;nbsp;потока &amp;lt;stream&amp;gt; или&amp;nbsp;из&amp;nbsp;stdin. &lt;br />
 &lt;br />
&lt;strong>fprintf (ANSI) &amp;lt;stdio.h&amp;gt;&lt;/strong>&lt;br />
&lt;em>int fprintf(FILE *stream, const char *format, ...);&lt;/em>&lt;br />
Осуществляет форматированный вывод в&amp;nbsp;поток &amp;lt;stream&amp;gt; (Табл.10). &lt;br />
&lt;strong>fread (ANSI) &amp;lt;stdio.h&amp;gt;&lt;/strong>&lt;br />
&lt;em>size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);&lt;/em>&lt;br />
Чтение блоков данных &amp;lt;nmemb&amp;gt; размером &amp;lt;size&amp;gt; каждый из&amp;nbsp;потока &amp;lt;stream&amp;gt; в&amp;nbsp;буфер &amp;lt;ptr&amp;gt;. Возвращается количество удачно прочитаных блоков.&lt;br />
 &lt;br />
&lt;strong>fflush (ANSI) &amp;lt;stdio.h&amp;gt;&lt;/strong>&lt;br />
&lt;em>int fflush(FILE *stream);&lt;/em>&lt;br />
&amp;laquo;Сбрасывает&amp;raquo; буферы потока &amp;lt;stream&amp;gt;. &lt;br />
&lt;strong>fwrite (ANSI) &amp;lt;stdio.h&amp;gt;&lt;/strong>&lt;br />
&lt;em>size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);&lt;/em>&lt;br />
Запись в&amp;nbsp;поток &amp;lt;stream&amp;gt; блоков данных &amp;lt;nmemb&amp;gt; размером &amp;lt;size&amp;gt; каждый из&amp;nbsp;буфера &amp;lt;ptr&amp;gt;. Возвращается количество удачно записанных блоков.&lt;br />
 &lt;br />
&lt;strong>perror (ANSI) &amp;lt;stdio.h&amp;gt;&lt;/strong>&lt;br />
&lt;em>void perror(const char *s);&lt;/em>&lt;br />
Выводит в&amp;nbsp;стандартный поток ошибки сообщения, описывая ошибку, произошедшую при&amp;nbsp;последнем системном вызове или&amp;nbsp;вызове библиотечной функции. &lt;br />
Таблица 9. &lt;strong>Символы управления форматированием функций типа printf()&lt;/strong>&lt;br />
&lt;table class="usertable" border="1">
&lt;tr class="userrow">&lt;td class="usercell">&lt;div style="float:center; text-align:center">&lt;strong>Элемент&lt;/strong>&lt;/div>&lt;/td>&lt;td  class="usercell">&lt;div style="float:center; text-align:center">&lt;strong>Эффект&lt;/strong>&lt;/div>&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell" colspan="2">&lt;div style="float:center; text-align:center">%[флаги][ширина][.точность][F | N&amp;nbsp;| h&amp;nbsp;| l]&amp;lt;тип&amp;gt;&lt;/div>&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell" colspan="2">&lt;div style="float:center; text-align:center">&lt;strong>Флаги&lt;/strong>&lt;/div>&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">0&lt;/td>&lt;td  class="usercell">Для чисел, ширина поля слева будет заполнена нулям.&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">-&lt;/td>&lt;td  class="usercell">Производится выравнивание выводимого числа по&amp;nbsp;левому краю в&amp;nbsp;пределах выделенного поля. Правая сторона выделенного поля дополняется пробелами.&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">+&lt;/td>&lt;td  class="usercell">Выводится знак числа символом '-' или&amp;nbsp;'+'&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">*&lt;/td>&lt;td  class="usercell">Обозначает пропуск при&amp;nbsp;вводе поля, определенного данной спецификацией. Введенное значение не&amp;nbsp;присваивается ни&amp;nbsp;какой переменной.&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">&amp;lt;Пробел&amp;gt;&lt;/td>&lt;td  class="usercell">Выводится пробел перед положительным числом и&amp;nbsp;знак '-' перед отрицательным.&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell"> # &lt;/td>&lt;td  class="usercell">Выводится идентификатор системы счисления для&amp;nbsp;целых:&lt;br />
&lt;ul>&lt;li> 0 перед числом в&amp;nbsp;восьмеричной с/c;
&lt;/li>&lt;li> 0х или&amp;nbsp;0Х в&amp;nbsp;шеснадцатеричной с/c; 
&lt;/li>&lt;li> ничего для&amp;nbsp;чисел в&amp;nbsp;десятичной с/c.&lt;/li>&lt;/ul>&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell" colspan="2">&lt;div style="float:center; text-align:center">&lt;strong>Ширина (воздействует только на&amp;nbsp;вывод)&lt;/strong>&lt;/div>&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">n&lt;/td>&lt;td  class="usercell">Определяет минимальную ширину поля в&amp;nbsp;&amp;lt;n&amp;gt; символах. Если после преобразозования ширины недостаточно, то&amp;nbsp;выводится столько символов сколько есть, с&amp;nbsp;дополнением пробелами.&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell">0n&lt;/td>&lt;td  class="usercell">Все тоже, но&amp;nbsp;позиции слева для&amp;nbsp;целого числа дополняются нулям.&lt;/td>&lt;/tr>
&lt;tr