CPP_TREF (1018899)
Текст из файла
================================================================= ���� ���������������� �++ ���������� ����������� �. ��᪢�, 1989 �. ================================================================= ���� ���������������� �++ ���������� �����������......................................7 1. ��������.................................................8 2. ����������� ����������...................................9 2.1 �������ਨ............................................9 2.2 �����䨪���� (�����).................................10 2.3 ���祢� ��.........................................10 2.4 ����⠭��..............................................11 2.4.1 ���� ����⠭��......................................11 2.4.2 ����⠭�� ⨯� long...................................13 2.4.3 �������� ����⠭��.................................13 2.4.4 ����⠭�� � ������饩 �窮�.........................15 2.4.5 ����⠭�� �����塞��� ⨯�........................15 2.4.6 ��।��塞� ����⠭��...............................16 2.5 ��ப�.................................................16 2.6 ��ࠪ���⨪� �������� �।��......................18 3. �������� ����������.....................................20 4. ��� � �����?............................................21 4.1 ������ ����⢨�.......................................21 4.2 ������ �����..........................................24 4.3 �᭮��� ⨯� ��ꥪ⮢.................................25 4.4 �ந������ ⨯�.......................................27 5. ��'���� � LVALUES.......................................29 6. ��������������...........................................30 6.1 ������� � 楫�........................................31 6.2 Float � double.........................................32 6.3 ������騥 � 楫����� ����稭�.....................32 6.4 �����⥫� � 楫�......................................33 6.5 ���� ��� ����� (unsigned).............................33 6.6 ��䬥��᪨� �८�ࠧ������...........................34 6.7 ���⮩ ⨯ (void)......................................36 7. ���������...............................................37 7.1 ��ࢨ�� ��ࠦ����....................................39 7.2 ����� ��ࠦ����......................................46 7.3 ���⨯����⨢�� ����樨.............................51 7.4 ����⨢�� ����樨....................................53 7.5 ����樨 ᤢ���........................................55 7.6 ����樨 �⭮襭��.....................................57 7.7 ����樨 ࠢ���⢠.....................................58 7.8 ��⮢�� ������ � (AND)...............................59 7.9 ��⮢�� ������ "�᪫���饥 ���".....................59 7.10 ��⮢�� ������ "������饥 ���".....................60 7.11 �����᪠� ������ �.................................61 7.12 �����᪠� ������ ���...............................62 7.13 ����樨 ����......................................63 7.14 ����樨 ��ᢠ������.................................64 7.15 ������ ������......................................66 7.16 ����樨 ��४����...................................67 7.16.1 ����� �������...................................68 7.16.2 ��⮢� ����樨....................................69 7.16.3 ���樠��� �������...............................70 8. ��������................................................71 8.1 ������� ����⢨� � ᯥ�䨪���� ����� �����.........73 8.2 ����䨪���� ⨯�.....................................77 8.3 ����⥫�..............................................79 8.4 ���祭�� ����⥫��....................................81 8.5 ���ᠭ�� ����ᮢ........................................92 8.5.1 ����᪨� �����.................................96 8.5.2 �������� �㭪権.....................................97 8.5.3 �ந������ ������...................................102 8.5.4 ����㠫�� �㭪樨...................................104 8.5.5 ����������..........................................107 8.5.6 �८�ࠧ������........................................109 8.5.7 ���������...........................................111 8.5.8 ���� � ��� ����� ���⮢.......................112 8.5.9 �������...............................................115 8.5.10 �������-�㭪樨....................................117 8.5.11 ��������............................................118 8.5.12 ����................................................119 8.5.13 ���� ��⮢...........................................120 8.5.14 �������� ������.....................................122 8.6 ���樠������...........................................124 8.6.1 ���᪨ ���樠�����................................126 8.6.2 ������ ��ꥪ⮢.......................................129 8.6.3 ��뫪�................................................132 8.6.4 �������� ���ᨢ�....................................135 8.7 ����� ⨯��............................................136 8.8 ��।������ ⨯� (typedef)..............................139 8.9 �����饭�� ����� �㭪権...............................143 8.10 ���ᠭ�� �������..................................146 8.11 ���ᠭ��� asm..........................................149 9. ���������................................................150 9.1 ������-��ࠦ����......................................151 9.2 ���⠢��� ������ (���� �����)....................152 9.3 ���� ������.......................................154 9.4 ������ while..........................................155 9.5 ������ do.............................................156 9.6 ������ for............................................157 9.7 ������ switch.........................................159 9.8 ������ break..........................................162 9.9 ������ continue.......................................163 9.10 ������ return........................................164 9.11 ������ goto..........................................165 9.12 ����祭�� ������....................................166 9.13 ���⮩ ������........................................167 9.14 ������ delete........................................168 9.15 ������ asm...........................................169 10. ������� �����������.....................................170 10.1 ��।������ �㭪権...................................171 10.2 ��।������ ���譨� ������.............................174 11. ������� ������� ��������................................175 12. ������� ���������� ������������.........................176 12.1 ������ ᨬ�����........................................177 12.2 ����祭�� 䠩���.......................................179 12.3 ����� ���������....................................180 12.4 ��ࠢ����� ��ப���....................................183 13. ������� ��������........................................184 14. ����� �����.............................................184 14.1 ������.................................................185 14.2 �㭪樨................................................185 14.3 ���ᨢ�, 㪠��⥫� � ����������....................187 14.4 ���� �८�ࠧ������ 㪠��⥫�.........................190 15. ���������-���������.....................................193 16. ���������� �� �������������.............................195 17. ��������� �������� � ������.............................198 18. ���祭� ᨭ⠪��᪨� ��ࠦ���� �몠 ��++............201 18.1 ��ࠦ����..............................................201 18.2 ���ᠭ��...............................................206 18.3 �������..............................................212 18.4 ���譨� ��।������ (external).........................214 19. ������� �� ����� ������ ������ ����� ��.................216 19.1 ����७��.............................................216 1. �������� ----------------------------------------------------------------- �� �㪮����⢮ ����뢠�� �� �ணࠬ������ �++. �ᮡ������ �몠 �++, ������騥 �� ��� ॠ����樨, �⬥����� �� 室� ���ᠭ��. ��� �ࠢ���, �� �ᮡ������ �����।�⢥��� �易�� � �ࠪ���⨪��� �������� �।��, �� ������ ॠ������� ��. �� �ࠪ���⨪� ���㦤����� � ࠧ���� 2.6. �++ - �� "���� �", ���ᠭ�� � �㪮���⢥ �� ��, ���७�� ����ᠬ�, �����묨 �㭪�ﬨ, �����ࠬ� ��४����, ��४��⨥� ���� �㭪権, ⨯��� ����⠭�, ��뫪���, �ࠢ������ ������ �������, ��મ� ��㬥�� �㭪樨 � ���묨 ᨭ⠪�ᮬ ����� ���ᠭ�� �㭪権. ������� ����� �++ � "���� ��" ��ᬮ�७� � #19. 2. ����������� ���������� ----------------------------------------------------------------- � �몥 ������� ���� ����ᮢ ���ᥬ: �����䨪����, ���祢� ��, ����⠭��, ��ப�, ������� � ࠧ����⥫�. ����, ����� ��ப� � �������ਨ (�.�. "����� ����⪨ "), ��� �㤥� ���ᠭ� ����, �����������, �� �� ��砥�, ����� ��� �ᯮ������� ��� ࠧ����⥫� ���ᥬ. ����� ����⪨ �ॡ����� ��� ࠧ������� �ᥤ��� �����䨪��, ���祢�� � � ����⠭�. �� ࠧ��� �室���� ��⮪� �� ���ᥬ� � ����⢥ ��।��� ���ᥬ� ������ ᠬ�� ������� ��ப� ᨬ�����, ����� �� ����� �।�⠢���� ᮡ�� ���ᥬ�. 2.1 �������ਨ ----------------------------------------------------------------- ������� /* � */ �������� � ᥡ� �������. �� ����᪠���� ��������� �������ਥ�. 2.2 �����䨪���� (�����) ----------------------------------------------------------------- �����䨪��� - �� ������⥫쭮��� �㪢 � ��� �ந����쭮� �����; ���� ᨬ��� - ��易⥫쭮 �㪢�; ᨬ��� ����ન����� "_" ��⠥��� �㪢��; �ய��� � ����� �㪢� ࠧ�������. 2.3 ���祢� �� ----------------------------------------------------------------- ������騥 �����䨪���� ����� ���祢묨 ���� � �� ����� ���� �ᯮ�짮����� ��� ��㣨� 楫��: asm continue extern int return typedef auto default float long short union break delete for new sizeof unsigned case do friend operator static virtual char double goto overload struct void class else if public switch while const enum inline register this 2.4 ����⠭�� ----------------------------------------------------------------- ������� ���쪮 ⨯�� ����⠭�, �������� ����. ��ࠪ���⨪� �������� �।��, �� ������ ������� �� ���ᨬ���� ���祭��, ������ � #2.6. 2.4.1 ���� ����⠭�� ----------------------------------------------------------------- ����� ����⠭�, ������ �� ������⥫쭮�� ���, ����������� ��� "���쬨�筠�", � ��稭����� � ���� 0 (�����筮�� ���), � ��� �����筠� �� ��� ��⠫��� �����. ����� 8 � 9 �� �室�� � ���쬨���� ����⠭��. ������⥫쭮��� ���, ��稭������ � 0� ��� 0� (�㫨 �������), ����������� ��� ��⭠����筮� �. ���⭠������ � ������� � ᥡ� ᨬ���� �� � ��� � �� f ��� F, ����� ᮮ⢥������ ������� � �� 10 �� 15. ������� ����⠭��, �ॢ���騥 ���ᨬ��쭮� ��� �������� 楫�� � ������, �।�⠢������ � ����� �������� ��� long; ���쬨��� � ��⭠������ ����⠭�� �।�⠢������ ��� int. 2.4.2 ����⠭�� ⨯� long ----------------------------------------------------------------- �������, ���쬨��� � ��⭠������ ����⠭�� ������� ����⠭⠬� ⨯� long, � � ���� � �⮨� �ਧ��� l ��� L. 2.4.3 �������� ����⠭�� ----------------------------------------------------------------- ������쭠� ����⠭� - �� ������� ᨬ���, �����祭�� � ��������, ���ਬ�� 'x'. ���祭��� ᨬ���쭮� ����⠭�� ���� �, ��� �ᯮ������ ��� �� �।�⠢����� � ��設��� ����. �������� ����⠭�� � ��設��� ���� �।�⠢������ ��� ����⠭�� ⨯� int. ������� �� ����騥 ������ �।�⠢����� ᨬ����, � ⠪�� ������� ' � ���⭠� ���� ��� \ , �।�⠢������ � ���� �ࠢ����� ������⥫쭮�⥩ (escape-������⥫쭮�⥩) � ᮮ⢥��⢨� � ���饩 ⠡��楩: ����� ��ப� NL(LF) \n ��ਧ��⠫쭠� ⠡���� NT \t ���⨪��쭠� ⠡���� VT \v ������ �� ���� ������ BS \b ������ ���⪨ CR \r �ண�� ��࠭��� FF \f ���⭠� ���� ��� \ \\ ������� ' \' ��⮢� 蠡��� ddd \ddd ��ࠢ����� ������⥫쭮��� \ddd ��⮨� �� ���⭮� ��ᮩ ����, �� ���ன ���� 1, 2 ��� 3 ���쬨���� ����, �����騥 ���祭�� ��������� ᨬ����. ���樠��� ��砥� �⮩ �������樨 ���� ������⥫쭮��� \0 (�� �㫥� �� ��� ���), ����� ��।���� ᨬ��� NULL. � ���騩 �� ���⭮� ��ᮩ ��⮩ ᨬ��� �� ᮢ������ �� � ����� �� 㪠������, � ���⭠� ���� ��� ����������. 2.4.4 ����⠭�� � ������饩 �窮� ----------------------------------------------------------------- ����⠭�� � ������饩 �窮� ����� �� 楫�� ���, �����筮� �窨, �������, ᨬ���� � ��� � � ������⥫� �⥯��� �� �᭮����� 10 � ������. ����� ���� � ������ �।�⠢���� ᮡ�� ������⥫쭮��� ���. ��� 楫�� ����, ⠪ � ������ ����� ���� ���饭�, �� �� �����६����; ⠪�� ����� ���� ���饭� �����筠� �窠 � � ��� �, �� ⮦� �� ��� �ࠧ�. ����⠭� � ������饩 �窮� �� ����� ���� �।�⠢���� � ���筮� �筮����, ��� ������ ���� �।�⠢���� � ������� (�. #2.6). 2.4.5 ����⠭�� �����塞��� ⨯� ----------------------------------------------------------------- �����, ���ᠭ�� ��� enum (�. #8.5) ����� ����⠭⠬� ⨯� int. 2.4.6 ��।��塞� ����⠭�� ----------------------------------------------------------------- ��ꥪ� ��� ⨯� (�. #5) ����� ���� ��।���� ��� ����⠭� �� ���殮��� �ᥩ ������ ����⢨� (#4.1) ��� �����. ��� 㪠��⥫�� �� ���⨣����� � ������� ����⥫� *const; ��� ��ꥪ⮢ ����� ⨯� �ᯮ������ ᯥ�䨪��� const (#8.2). 2.5 ��ப� ----------------------------------------------------------------- ��ப� - �� ������⥫쭮��� ᨬ�����, �����祭��� � ������ ����窨, �.�. "...". ��ப� ����� ⨯ "���ᨢ ᨬ�����", ����� ����� static (c�. #4 ����). �� ���樠����樨 ���⠬ ���ᨢ� ������⥫쭮 ��ᢠ������� ���祭�� ᨬ����� � ������� ����窠�. �� ��ப�, ���� ����ᠭ�� �����筮, ࠧ�������. ��������� ����頥� �㫥��� ���� \0 � ����� ������ ��ப�, ⠪ �� �ணࠬ�� ᪠�����騥 ��ப� ����� ��।����� �� �����. � ��ப�, ��। ����窠�� " ������ ����� ���⭠� ���� ��� \, �� ⮣� ����� ���� �ᯮ�짮���� ��� �ࠢ���騥 ������⥫쭮��, �ਬ����� ��� ���ᠭ�� ᨬ������ ����⠭�. ������ "����� ��ப�" ����� ��������� ⮫쪮 �����।�⢥��� �� ᨬ����� "\"; � ��⨢��� ��砥 ᨬ���� "\" � "����� ��ப�" �����������. 2.6 ��ࠪ���⨪� �������� �।�� ----------------------------------------------------------------- ��ࠪ���⨪�, ����� ���������� �� ���室� �� ��設� � ��設�, ᢥ���� � ������ ⠡����: ---------------------------------------------------------- | DEC VAX-11 Motorola 68000 IBM 370 | | ASCII ASCII EBCDIC | |--------------------------------------------------------| | char 8 ��� 8 ��� 8 ��� | | int 32 ��� 16 ��� 32 ��� | | short 16 ��� 16 ��� 16 ��� | | long 32 ��� 32 ��� 32 ��� | | float 32 ��� 32 ��� 32 ��� | | double 64 ��� 64 ��� 64 ��� | | pointer 32 ��� 32 ��� 24 ��� | | float range +_10E+_38 +_10E+_38 +_10E+_76 | | double range+_10E+_38 +_10E+_38 +_10E+_76 | | ⨯ char signed unsigned unsigned | | ⨯ field signed unsigned unsigned | | field ���冷� right-to-left left-to-right left-to-right! ! �ࠢ� ������ �� ���ࠢ� �� ���ࠢ�! ---------------------------------------------------------- 3. �������� ���������� ----------------------------------------------------------------- � ���ᠭ�� ᨭ⠪��, �ᯮ��㥬�� � �⮬ �㪮����⢥, ᨭ⠪��᪨� ��⥣�ਨ �뤥������ ����ન������, � �� � ᨬ����, ����� ������ ��������� �� �ନ���� �㪢��쭮, ���ᨢ��. ����ୠ⨢�� ��⥣�ਨ ���������� �� �⤥���� ���窠�. ����易⥫�� ᨬ���, �ନ����� ��� ���ନ�����, 㪠�뢠���� �����ᮬ "opt", ���ਬ�� { ��ࠦ���� opt } 㪠�뢠�� �� ����易⥫쭮� ��ࠦ����, �����祭��� � 䨣���� ����. ���⠪�� �. � #19. 4. ��� � �����? ----------------------------------------------------------------- ��� ��।���� ��ꥪ�, �㭪��, ⨯ ��� ���祭��. ��� ����� ���� �ᯮ�짮���� ⮫쪮 ����� ��।�������� �ࠣ���� ⥪�� �ணࠬ��, ���뢠����� �������� ����⢨� �����. ��� ����� ⨯, ����� � ��।���� ᯮᮡ ��� �ᯮ�짮�����. ��ꥪ� - �� ������� �����. ��ꥪ� ����� ����� �����, ����� ��।���� ��� "�६� �����". ���祭�� ��ꥪ� ��।������ ⨯�� �����, �ᯮ��㥬��� ��� ����㯠 � ����. 4.1 ������ ����⢨� ----------------------------------------------------------------- ������� 4 ���� �����⥩ ����⢨�: �����쭠� (local), 䠩� (file), �ணࠬ�� (program) � ����� (class). �����쭠� �������: �����, ������� � ����� ����� ������묨 ��� ������� �����. ��� ����� ���� �ᯮ�짮���� � ����� �ࠧ� �� ⮣�, ��� ��� ���ᠭ� � ��� � ����� � ���祭�� �� �����⨨ �����. �᪫�祭�� ��⠢���� ��⪨ (#9.12), ����� ����� ���� �ᯮ�짮���� � �� ���� �㭪樨, ��� ��� ���ᠭ�, � ⠪�� ����� �㭪権, ����� �ਭ������� �ᥬ� 䠩�� ��� �ணࠬ��. ����� �ଠ���� ��ࠬ�� �㭪樨 ������� ���ᠭ�묨 � ᠬ�� ���譥� ����� �⮩ �㭪樨. ����: ���, �������� ��� ��� ����� (#9.2) ��� ����� (#8.5) ����� ���� �ᯮ�짮���� � 䠩��, � ��� ��� ���ᠭ�, �� ���ᠭ��. ��� ������㯭� �� ��㣨� 䠩��� � �����䠩����� �ணࠬ��, � �� ������ ���譨�. �ணࠬ��: ���, �������� ���譨�, ���� ��騬 ��� ������� 䠩�� � �����䠩����� �ணࠬ��, ���⮬� ���ᠭ�� �⮣� �� ����� � ��㣮� 䠩�� ��।���� �� �� ᠬ�� ��६����� (#5), �㭪�� (#10.1), ⨯ (#8.7) ��� ��ࠬ��� (#8.10). �����: ��� ����, ��।�������� ����� �����, ���� ����७��� ��� ������� ����� � ����� ���� �ᯮ�짮���� ���� ��� ���� �㭪樨 �⮣� �����, ���� ��� ��६����� �⮣� ����� (�ᯮ���� ������ . (#7.1)), ���� ��� 㪠��⥫� �� ��६����� �⮣� �����, (�ᯮ���� ������ -> (#7.1)). �� ����� ����� ⨯� static (#8.5.1) � ����� �㭪権 ⠪�� ����� ��뫠����, 㪠�뢠� ����� �� ����� � �� ������ ����⢨� (�ᯮ���� ������ :: (#7.7)). 4.2 ������ ����� ----------------------------------------------------------------- ���� ��� ��।��塞�� �� ���ᠭ�� ����� �����: ��⮬���᪨� � ����᪨�. ��⮬���᪨� ��ꥪ�� ����� ������묨 ��� ������� �맮�� �����. ��� ������� �� ��室� �� �����. ����᪨� ��ꥪ�� ��࠭����� �� ���殮��� �믮������ �ᥩ �ணࠬ��. ������� ��ꥪ�� �� �易�� � ������� � �� �६���� ����� � �ணࠬ��. ��� ������� ⮫쪮 �� ����� new � delete; c�. #7.2, #9.14, #17. 4.3 �᭮��� ⨯� ��ꥪ⮢. ----------------------------------------------------------------- ��ꥪ��, ���ᠭ�� ��� ᨬ����� (char), �����筮 ������, �⮡� �࠭��� �� 童� �� ᮮ⢥�����饣� ������ ॠ����樨 ����७���� ����� ᨬ�����, � � ����⢨⥫�� ᨬ��� �� �⮣� ����� ᨬ����� �࠭���� � ᨬ���쭮� ��६�����, � �� ���祭�� ������⭮ 楫��� ���� �⮣� ᨬ����. � ᨬ������ ��६����� ����� �࠭��� � ��㣨� ����稭�, �� ॠ������ �㤥� ��設��-����ᨬ��. � �몥 ���� �� ���� 楫�� ⨯��: ���⪨� 楫� (short int), 楫� (int) � ������ 楫� (long int). ������ ������ �����, �⢮����� ��� ����� ⨯� long � short, ������ �� ॠ����樨 �몠, � ���� short int, ���� long int, ���� ��� ����� ����� ���� �������� ⨯� int. ���� int ᮮ⢥����� �⠭����� ࠧ��� ��, ������騩 �� ��設�, ��㣨� ࠧ���� �।��⠢������ ��� 㤮���⢮७�� ᯥ樠���� ���ॡ���⥩. ����� ⨯� enum (#8.9) - �� ����� ������������� ����⠭�. ��ࠪ���⨪� ������ ⨯� enum ������� �ࠪ���⨪�� ����� ⨯� int. ���� ��� �����, ���ᠭ�� ��� unsigned, ���稭����� ������� ��䬥⨪� �� ����� 2**n, ��� n - � ��⮢ � �।�⠢����� �. ����⠭�� � ������饩 �窮� ���筮� �筮�� (float) � ������� �筮�� (double) � �������� ॠ������� ����� ���� ᨭ�������. �.�. ����� ��襯��稢������ ⨯�� ���筮 ������������ ��� �, ��� �⭮����� � ��䬥���� ⨯�. ���� char, int ��� ࠧ�� � enum ���뢠���� 楫����묨 (integer). ���� ������ float � double ���뢠���� ⨯��� � ������饩 �窮�. ��� void ��।���� ���⮩ ����� ���祭��. �� �ᯮ������ ��� 㪠����� ⨯� �㭪権, �� ��������� ���祭��. 4.4 �ந������ ⨯� ----------------------------------------------------------------- �� �㭤����⠫��� ��䬥��᪨� ⨯��, � �몥 �++ ����᪠���� �ᯮ�짮����� �ࠪ��᪨ ����࠭�祭���� ������⢠ �ந������� ⨯��, ����� ��������� �� �㭤����⠫��� ���騬 ��ࠧ��: - ���ᨢ� ��ꥪ⮢ ������� ⨯�; - �㭪樨, ��㬥�⠬� ������ ����� ��६���� ������ ⨯��, � �������� ��ꥪ�� ������ ⨯��; - 㪠��⥫� �� ��६���� ������� ⨯�; - ��뫪� �� ��ꥪ�� ������� ⨯�; - ����⠭��, ����� ����� ���祭�� ������� ⨯�; - ������, ᮤ�ঠ騥 ������⥫쭮�� ��ꥪ⮢ ࠧ����� ⨯��, ����� �㭪権 ��� ࠡ��� � �⨬� ��ꥪ⠬� � ����� ��࠭�祭�� �� ����� � �⨬ ��ꥪ⠬ � �㭪��; - ��������, ����� ����� ����ᠬ� ��� ��࠭�祭�� ����㯠; - ��ꥤ������, ����� ����� ������ࠬ�, ᯮᮡ�묨 ᮤ�ঠ�� ��६���� ࠧ����� ⨯�� � ࠧ��� �६�. ������� ��⮤� ᮧ����� ��ꥪ⮢ �ந������� ⨯�� ����� �ਬ������� ४��ᨢ��. 5. ��'���� � LVALUES ----------------------------------------------------------------- ��ꥪ� - �� ����㯭�� ��ࠡ�⪥ ������� �����; lvalue - �� ��ࠦ����, ��뫠�饥�� �� ��ꥪ�. �祢���� �ਬ� ��ࠦ���� ⨯� lvalue ���� ��� ��ꥪ�. � �몥 ������� ����樨, १���⮬ ������ ����� lvalue: ���ਬ��, � � - �� ��ࠦ���� ⨯� pointer, ⮣�� *� - �� ��ࠦ���� ⨯� lvalue, ��뫠�饥�� �� �� ��ꥪ�, �� ����� 㪠�뢠�� �. �������� "lvalue" �ந��諮 �� ��ࠦ���� ��ᢠ������ �1=�2, ��� ���� ���࠭� �1 ������ ���� ��ࠦ����� ⨯� lvalue. �� ��ᬮ�७�� ������ ����樨 ���� ᯥ樠�쭮 �����ਢ�����, ����� �� ��ࠦ���� ⨯� lvalue �ᯮ�짮������ � ����⢥ ���࠭��� � ����� �� ��� ����� १���⮬ �ਬ������ �⮩ ����樨. 6. �������������� ----------------------------------------------------------------- �� ����権 ����� � ����ᨬ��� �� �� ���࠭��� ��뢠�� �८�ࠧ������ ���祭�� ���࠭�� �� ������ ⨯� � ��㣮�. � �⮬ ࠧ���� ���������� १�����, ����� ��� ������� �� ⠪�� �८�ࠧ������. � #6.6 ���������� �⮣� �८�ࠧ������, �ॡ㥬� ����設�⮢� ������ ����権; �� ᢥ����� ����������� ����室��� ��ࠧ�� �� ��ᬮ�७�� ������ ����樨. � ࠧ���� # 8.5.6 ����뢠���� �८�ࠧ������, ��।��塞� ���짮��⥫��. 6.1 ������� � 楫� ----------------------------------------------------------------- ����� ⨯� �har ��� short int ����� �ᯮ�짮������ �����, ��� �ᯮ������ ⨯ int. �� ��� ����� ���祭�� �८�ࠧ���� � 楫��� ⨯�. �८�ࠧ������ short int � long �ᥣ�� ����砥� � ᥡ� �������� ���७��; 楫� - �� ����稭� � ������. �㤥� ��� ��� ����� ���� �������� ���७�� - �� �८�ࠧ������ ������ ⨯� char, ������ �� �������� �. #2.6. �� ��������, � ��� ᨬ����� ����� �ࠪ������ ��� 楫� � ������, ᨬ���� � ���� ASCII ������⥫��. ������, ᨬ���쭠� ����⠭�, ��।������� � ���쬨��� �ࠢ���騬 ᨬ�����, ����᪠�� �������� ���७�� � ����� ��������� ����⥫쭮�; ���ਬ��, '\377' ����� ���祭�� -1. ����� long int �८�ࠧ���� � char, ��� �ᥪ����� ��; ��譨� ���� ���� ����뢠����. 6.2 Float � double ----------------------------------------------------------------- ��䬥��᪨� ����樨 ��� ��� � ������饩 �窮� �믮������� � ������� �筮����. �८�ࠧ������ ����� ��� � ���筮� � ������� �筮���� ��⥬���᪨ ���४�� ���⮫쪮, ���쪮 �������� ��������. 6.3 ������騥 � 楫����� ����稭� ----------------------------------------------------------------- �८�ࠧ������ ���祭�� � ������饩 �窮� � 楫������� ⨯� ��設��-����ᨬ�; � ��⭮�� ���ࠢ����� ��祭�� ����⥫��� �ᥫ ������� �� ��設� � ��設�. ������� ����।����, � ���祭�� �� �������� � �⢥����� ��������. �८�ࠧ������ 楫������ ���祭�� � ������騥 �믮������ ��� �������, �� �������� ����� �筮��, � ��� १���� �� �।�ᬮ�७� �����筮�� ������⢠ ��⮢. 6.4 �����⥫� � 楫� ----------------------------------------------------------------- ��ࠦ���� 楫��� ⨯� ����� ᪫��뢠���� � �������� �� ��६����� ⨯� pointer; � �⮬ ��砥 ��� �८�ࠧ���� ⠪, ��� �뫮 ��ᬮ�७� ��� ����樨 �����. ��� 㪠��⥫� �� ��ꥪ�� ������ � ⮣� �� ⨯� ����� ��������; � �⮬ ��砥 १���� �८�ࠧ���� � int ��� long � ����ᨬ��� �� ��設�; �. #7.4 6.5 ���� ��� ����� (unsigned) ----------------------------------------------------------------- ����, ��� 楫�� ��� ����� �ᯮ������ ����� � ����� 楫�, ���⮥ 楫�� � १���� �८�ࠧ����� � 楫�� ��� �����. ���祭��� ���� �������襥 楫�� ��� �����, ᮮ⢥�����饥 楫��� � ������ (�� ����� 2**ࠧ��� ��). � ����筮� �������⥫쭮� ���� �� �८�ࠧ������ ���� ��� 㬮��⥫�� � �� ������� 䠪����� ��������� ��⮢. ����� 楫�� ��� ����� �८�ࠧ���� � ⨯� long, ���祭�� १���� ᮢ������ � ���祭��� 楫��� ��� �����. ����� ��ࠧ��, �� �८�ࠧ������ ����� � ���������� �㫥� ��. 6.6 ��䬥��᪨� �८�ࠧ������ ----------------------------------------------------------------- ��������饥 ����設�⢮ ����権 ��뢠�� �८�ࠧ������ � ��।���� ⨯� १���� � ᮮ⢥��⢨� � ��襯ਢ�����묨 �ࠢ�����. �ਢ������ ���� �奬� �८�ࠧ������ � ���쭥�襬 �㤥� ���뢠�� "����묨 ��䬥��᪨�� �८�ࠧ�����ﬨ". ���砫� ��� ���࠭�� ⨯�� char, unsigned char ��� short �८�ࠧ����� � int, � ��� ���࠭�� ⨯� float �८�ࠧ����� � double. ��⥬, � �����-���� ���࠭� ����� ⨯ double, � ��㣮� �८�ࠧ���� � ⨯� double � double �㤥� ⨯�� १����. � ��砥, � �����-���� ���࠭� ����� ⨯ unsigned long, � ��㣮� �८�ࠧ���� � ⨯� unsigned long � �� �� �㤥� � ⨯�� १����. � ��砥, �c�� �����-���� ���࠭� ����� ⨯ long, � ��㣮� �८�ࠧ���� � ⨯� long � �� �� �㤥� ⨯�� १����. � ��砥, � ���࠭� ����� ⨯ unsigned, � ��㣮� ���࠭� �८�ࠧ���� � ⨯� unsigned, � �� �㤥� ⨯�� १����. � ��⨢��� ��砥 ��� ���࠭�� ���� ����� ⨯ int, � �� �㤥� ⨯�� १����. 6.7 ���⮩ ⨯ (void) ----------------------------------------------------------------- ���祭�� (���������饥) ��ꥪ� ⨯� void �� �ᯮ������ �����, � ���� �� ����� �ਬ������� �� ��, �� ���� �८�ࠧ������. ����� ⮣�, �� ���⮥ ��ࠦ���� ������砥� ���������饥 ���祭��, ⠪�� ��ࠦ���� ����� �ᯮ�짮������ ⮫쪮 ��� ��ࠦ���� �।������� (#9.1) ��� ��� ���� ���࠭� ��ࠦ���� "������" (#7.15). ��ࠦ���� ����� ���� �८�ࠧ����� � ⨯� void �� ����� �ਢ������ ⨯��. ���ਬ��, �� �������� � �� ���� ������ ���祭��, �����頥��� �㭪樥�, ����� �ᯮ������ � ����⢥ ������ �� ���࠭��� ��ࠦ����. ��ꥪ� ⨯� *void (㪠��⥫� �� ���⮩) ����� ���� �ᯮ�짮��� ��� 㪠����� �� ��ꥪ�� �������⭮�� ⨯�. 7. ��������� ----------------------------------------------------------------- �ਮ��� ����権 � ��ࠦ����� ᮢ������ � ���浪�� ������� �᭮���� ���ࠧ����� �⮩ �����, ��稭�� � ᠬ��� ��᮪��� �ਮ���. ���, ���ਬ��, ��ࠦ���ﬨ, 㪠�뢠��묨 � ����⢥ ���࠭��� ����樨 + (#7.4) ����� ��ࠦ����, ��।������ � ##7.1-7.4. ����� ������� ���ࠧ���� ����樨 ����� �� �� �ਮ���. � ������ ���ࠧ���� ��� ����権, ��ᬮ�७��� ⠬, 㪠�뢠���� �� ���樠⨢����� �� ��� �ࠢ�. �ਮ��� � ���樠⨢����� ��� ����権 १����� � �ࠬ��⨪� #18. �� ��� ��㣨� ����� ���冷� ������ � ��ࠦ����� �� ��।����, �.�. ��������� �㤥� �ந������� ������ �����ࠦ���� � ⮬ ���浪�, ����� �� ��⠥� �������� ��䥪⨢��, ���� � ������ �����ࠦ���� ����� �ਢ��� � ������ ��䥪⠬. ���冷�, � ��� ��������� ������ ��䥪��, �� ��।����. ��ࠦ����, ������騥 ������⨢�� � ���樠⨢�� ����樨 (*, +, &, :, ^) ����� ���� ���㯮�冷祭� �ந������ ��ࠧ��, ��ᬮ��� �� ����稥 ��㣫�� ���; �⮡� ��।����� ����室��� ���冷� ������ ����室��� �ᯮ�짮���� � ������� ��६����. �� ������ ��ࠦ���� ��ࠡ�⪠ ��९������� � ��ઠ �� ������� ����� ��設��-����ᨬ묨. ����設�⢮ ��������� ॠ����権 �몠 �� ��������� ��९������� 楫�� �ᥫ; ��ࠡ�⪠ ���権 �� ����⪥ ������� �� 0 � �� ��� �ᮡ�� ����� � ��� � ������饩 �窮� ������� �� ��設� � ��設� � ���筮 �믮������ �� ����� ���������� �㭪権. � ���������� � �⠭����� ���祭��, ���ᠭ�� � #7.2-7.15, ����樨 ����� ��४�뢠����, �� ���� ����������� �ਬ������ ⨯��, ��।������� ���짮��⥫��; �.7.16. 7.1 ��ࢨ�� ��ࠦ���� ----------------------------------------------------------------- ��ࢨ�� ��ࠦ����, ������騥 . , ->, �������� � �맮� �㭪権, �믮������� �� ���ࠢ�. id: �����䨪��� typedef-name :: �����䨪��� ��ࢨ筮�-��ࠦ���� id :: �����䨪��� constant string this ( ��ࠦ���� ) ��ࢨ筮�-��ࠦ���� [ ��ࠦ���� ] ��ࢨ筮�-��ࠦ���� ( ᯨ᮪-��ࠦ���� opt ) ��ࢨ筮�-��ࠦ���� . id ��ࢨ筮�-��ࠦ���� -> id ᯨ᮪-��ࠦ����: ��ࠦ���� ᯨ᮪-��ࠦ���� , ��ࠦ���� �����䨪��� ���� ��ࢨ�� ��ࠦ�����, �� ����, �� �� ���ᠭ ��� 㪠���� ����. ��� �����䨪��� ��।������ ��� ���ᠭ���. ������, � ⨯ �����䨪��� "���ᨢ ...", � ���祭��� ��ࠦ����, ����饣� �� �⮣� �����䨪��� �㤥� 㪠��⥫� �� ���� ��ꥪ� � ���ᨢ�, � ⨯�� ��ࠦ���� - pointer. ����� ⮣�, �����䨪��� �� ���� ��ࠦ����� lvalue. ������� ��ࠧ��, �����䨪���, ����� ���ᠭ ��� "�㭪�� ������", �� �� ��砥� ����� �� �ᯮ������ � ����� �㭪樨 �� ���饭��, �८�ࠧ���� � "㪠��⥫� �� �㭪�� ������". �����䨪���, �� ����� ��� ������ :: ���� ��ࢨ�� ��ࠦ�����, �� ����, �� ���ᠭ ᮮ⢥�����騬 ��ࠧ�� � 䠩�� ��� �ணࠬ�� (#4.1). ��� ⨯ ��।������ �� ���ᠭ�� �����䨪���. � ��� ������� �� ��ꥪ� ����� ��뫠���� �� ����� ���� � ��� �����䨪��� ��८�।����� � �����쭮� ������. �����䨪��� :: typedef-name (#8.8) - �� ��ࢨ筮� ��ࠦ����. Typedef-name ������砥� ����� (#8.5), � �����䨪��� - ���� �⮣� �����. ��� ⨯ ��।������ ���ᠭ��� �����䨪���. ����⠭� ���� ��ࢨ�� ��ࠦ�����. �� ⨯ ����� ���� int, long ��� double. ��ப� - �� ��ࢨ筮� ��ࠦ����. ��室�� �� ⨯�� ���� "array of char" (���ᨢ ᨬ�����), �� ��� ⥬ �� ᠬ� �ࠢ����, ����� �ਢ����� ��� ��� �����䨪��, �� ����������� � "pointer to char" ("㪠��⥫� �� ᨬ���") � १���⮬ ����뢠���� 㪠��⥫� �� ���� ᨬ��� ��ப�. (�������� ������� �᪫�祭��, �. #8.6). ���祢�� �� - �� � ������ ��砥, ��ࢨ筮� ��ࠦ���� � ⥫� ���� �㭪樨 (�. #8.5). ��� ���� ��뫪�� �� ��ꥪ�, ��� ���ண� ��뢠���� �㭪��. ��ࠦ���� � ��㣫�� ���� - �� ��ࢨ筮� ��ࠦ����, ⨯ � ���祭�� ���ண� ������� ⨯� � ���祭�� ��ࠦ���� ��� ���. ����稥 ��㣫�� ��� �� ����� �� �, ���� �� ��ࠦ���� lvalue ��� ���. ��ࢨ筮� ��ࠦ����, �� ����� ��� ��ࠦ���� � �������� ����, ���� ��ࢨ�� ��ࠦ�����. ����⨢�� �᭮, �� �� ������. ���筮, ��ࢨ筮� ��ࠦ���� ����� ⨯ "pointer to ..." ("㪠��⥫� �� ..."), �����᭮� ��ࠦ���� ����� ⨯ int, � ⨯ १���� - "...". ��ࠦ���� E1[E2] �����筮 (�� ��।������) *((�1)+(�2)). ��, �� ����室��� ��� ��������� �⮩ �����, ᮤ�ন��� � �⮬ ࠧ����; ������, �易��� � ����⨥� �����䨪�� � ����権 * � +, ��ᬠ�ਢ����� � ##7.1, 7.2 � 7.4; �뢮�� �㬬������� � #14.3. �맮� �㭪樨 - �� ��ࢨ筮� ��ࠦ����, �� ����� ��� �����祭�� � ��㣫� ���, �������� ���⮩, ᯨ᮪ ��ࠦ����, ࠧ�������� �����묨. ��ࠦ���� � ���� �।�⠢���� ᮡ�� 䠪��᪨� ��㬥��� �㭪樨. �����᪨� ��㬥��� �ࠢ�������� � �ଠ��묨 � �믮������� ⠪�� �८�ࠧ������, ��� � �� �ଠ��� ��㬥�� ���樠�������� �� 䠪��᪨� ��㬥�⮬ (#8.6). ��� �� ��㬥�⮢ ����뢠���� � ᮮ⢥��⢨� � ᯨ� ��㬥�⮢ �맮��. �� �����⮢�� � �맮�� �㭪樨 �������� ����� ������� 䠪���� ��ࠬ���. �㭪�� ����� �������� ���祭�� �� �ଠ���� ��ࠬ��, �� �� ��������� �� ������ �� ���祭�� 䠪��᪨� ��ࠬ��. � ��㣮� ��� ������� ����������� ��।����� � ����⢥ ��ࠬ�� 㪠��⥫� ��� ��뫪�, �� �⮬ �㭪�� ᬮ��� �������� ���祭�� ��ꥪ⮢, �� ����� 㪠�뢠�� 㪠��⥫� ��� ��뫪�. ��� ���ᨢ� - �� ��ࠦ���� ⨯� pointer. �㭪�� ����� ���� ��।����� ⠪, �� �㤥� ���ਭ����� ����襥 � ��㬥�⮢, 祬 ������ ��� ��� � ���ᠭ�� (#8.3). �㭪�� ����� ���� ��।����� ��� ����襣� � ��㬥�⮢, 祬 ��� ��� ���ᠭ�. ��� �⮣� �� 㬮�砭�� ��।������� ���祭��, ����� �ᯮ������� ��� ���饭��� ��㬥�⮢. ���饭�� ��㬥��� ������ ��室����� � ���� ᯨ᪠ ��㬥�⮢ �㭪樨. ��। ���饭��� ��� 䠪��᪨� ��㬥��� ⨯� float �८�ࠧ����� � ⨯� double; ��� ��㬥��� ⨯� char ��� short �८�ࠧ����� � ⨯� int, �, ��� ���筮, ����� ���ᨢ�� �८�ࠧ����� � 㪠��⥫� (pointer). ���冷� ������ ��㬥�⮢ � �몥 �� ��।����; ࠧ���� ���������� ������� ��-ࠧ����. ����᪠���� ४��ᨢ��� ���饭�� � �� �㭪樨. ��ࢨ筮� ��ࠦ����, �� ����� ��� �窠 � �����䨪��� (��� �����䨪���, ��।��塞� �१ typedef-name, �ᯮ����騩 ������ ::), ���� ��ࠦ�����. ��ࢮ� ��ࠦ���� ������ ���� ��ꥪ⮬ �����, � �����䨪��� - ������ ���� �⮣� �����. ���祭�� �� - �� ������������ ���� ��ꥪ�, � �� �㤥� ����� lvalue, � ��ࢮ� ��ࠦ���� ⮦� lvalue. ��ࢨ筮� ��ࠦ����, �� ����� ��� ��५�� (->) � �����䨪��� (��� �����䨪���, ��।������ �� ����� typedef -name, �ᯮ����騩 ������ ::), ���� ��ࠦ�����. ��ࢮ� ��ࠦ���� ������ ���� ��ࠦ���� ⨯� pointer, 㪠�뢠�騬 �� ��ꥪ� �����, � �����䨪��� ������ ���� ������ ���� �⮣� �����. ������⮬ �㤥� ���祭�� lvalue, ��뫠�饥�� �� ������������ ���� �����, �� ����� 㪠�뢠�� ��ࠦ���� ⨯� pointer. ����� ��ࠧ��, ��ࠦ���� �1->MOS �������筮 (*E1).MOS. ������ ��ᬠ�ਢ����� � #8.5. � ��ࢨ筮� ��ࠦ���� �ਭ����� ���祭�� ⨯� "��뫪� �� ..." (pointer to ...) (�. #8.4 � #8.6.3), � ⮣�� ���祭�� ���������� ��८�।������ ⠪�� ��ࠧ��, �⮡� ���祭�� ��ࠦ���� �뫮 ��ꥪ⮬, �� ����� 㪠�뢠�� ��뫪�. � ��� ��ꥪ� ⮦� ��뫪�, � �� ⠪�� �㤥� ��८�।������� � �.�. ����⨬, �� "��ꥪ�� �����" ����� ���� ������ࠬ� (#8.5.11) � ��ꥤ�����ﬨ (#8.5.12). ��뫪� ����� ��ᬠ�ਢ����� ��� ��� ��ꥪ�; �. #8.6.3. 7.2 ����� ��ࠦ���� ----------------------------------------------------------------- ��ࠦ���� � 㭠�묨 ���࠭����: 㭠୮�-��ࠦ���� 㭠ୠ�-������ ��ࠦ���� ��ࠦ���� ++ ��ࠦ���� -- (���-⨯�) ��ࠦ���� (���⮥-���-⨯�)(ᯨ᮪ ��ࠦ����) sizeof ��ࠦ���� sizeof (���-⨯�) new ���-⨯� new (���-⨯�) ����� ����樨: * & - ! ~ ++ -- ���ୠ� ������ * ����砥� ��ᢥ���� ������: ��ࠦ���� ������ ���� 㪠��⥫��, � १���⮬ ���� ���祭�� lvalue, ��뫠�饥�� �� �� ��ꥪ�, �� ����� 㪠�뢠�� ��ࠦ����. � ⨯ ��ࠦ���� "㪠��⥫� �� ...", � ⨯ १���� "...". ������⮬ 㭠୮� ����樨 & ���� 㪠��⥫� �� �� ��ꥪ�, �� ����� ��뫠���� ���࠭�. ���࠭� ������ ����� ⨯ lvalue. � ⨯ ��ࠦ���� "...", � ⨯ १���� "㪠��⥫� �� ...". ������⮬ 㭠୮� ����樨 - (���栭��) ���� �� ���࠭�, ����� � ��⨢�������� ������. ���࠭� ������ ���� 楫�����. �믮������� ����� ��䬥��᪨� �८�ࠧ������. ���栭�� ����稭� ⨯� unsigned �������� �� ����� ���⠭�� �� ���祭�� �� 2**n, ��� n - � ��⮢ � int. ���୮� ����樨 + �� �������. ������⮬ ����樨 ������� ���栭�� ! �㤥� 1, � ���祭�� �� ���࠭�� ࠢ�� 0, � 0, � ���祭�� �� ���࠭�� �⫨筮 �� 0. ��� १���� - int. �� ������ �ਬ����� � ��� ��䬥���� ⨯� ��� 㪠��⥫�. ������ ~ ���� ���������� �� ������� ��� ���࠭��. �믮������� ����� ��䬥��᪨� �८�ࠧ������. ��� ���࠭�� ������ ���� 楫�����. ���࠭� ��䨪᭮� ����樨 ++ 㢥��稢�����. ���࠭� ������ ���� lvalue. ���祭��� ���� ����� ���祭�� ���࠭��, �� �� �� lvalue. ��ࠦ���� ++� ������⭮ �+=1. ���ଠ�� � �८�ࠧ������ �. � ���ᠭ�� ����樨 ����� (#7.4) � ����樨 ��ᢠ������ (#7.14). ��䨪᭠� ������ -- �������筠 ��䨪᭮� ����樨 ++, �� �ਢ���� � 㬥��襭�� ��� ���࠭��. ������⮬ �ਬ������ ����䨪᭮� ����樨 ++ ���� ⥪�饥 ���祭�� ���࠭��. ���࠭� ������ ���� lvalue. �� ����祭�� १���� ���࠭� 㢥��稢����� �筮 ⠪�� �� ᯮᮡ��, ��� � ��� ��䨪᭮� ����樨 ++. ������� ����� �� �� ⨯, �� � ���࠭�. ���祭��, ����祭��� �� �ਬ������ ����䨪᭮� ����樨 --, - �� ⥪�饥 ���祭�� ���࠭��. ���࠭� ������ ���� lvalue. �� ⮣�, ��� ����祭 १����, ���࠭� 㬥��蠥��� �筮 ⠪ ��, ��� � ��� ��䨪᭮� ����樨 --. ��� १���� �������祭 ⨯� ���࠭��. �����祭��� � ��㣫� ��� ��� ⨯�, ����饥 ��। ��ࠦ�����, ��뢠�� �८�ࠧ������ ���祭�� �⮣� ��ࠦ���� � 㪠������� ⨯� (type-name). �� ��������� ���뢠���� �ਢ������� ⨯�� (cast). ����� ��� ⨯� - �� �����⢥��� �����䨪��� ��� ���祢�� �� - �८�ࠧ������ ����� ����ୠ⨢�� ���� ��ࠦ��� ��� ���⮥-���-⨯� (single-type-name), �� ����� ��� �����祭�� � ��㣫� ��� ᯨ᮪ ��ࠦ����. ����� ⨯�� ���ᠭ� � #8.7. ���ᮡ ��।������ �८�ࠧ������ ��� ⨯��, ��।������ ���짮��⥫�� ���ᠭ � #8.5.5 � #8.5.6. ������ sizeof �뤠�� ࠧ��� ��� ���࠭�� � �����. (����⨥ "����" � �몥 �� ��।�����, �� ��� ���祭�� ����樨 sizeof. ������, �� ��� ��������� ॠ������� ���⮬ ���� ���⮪ �����, �⢥����� ��� ���� ᨬ���). �ਬ���⥫쭮 � ���ᨢ�, १���⮬ ���� ��饥 � ���� � ���ᨢ�. ������ ��।������ �� ���ᠭ�� ��ꥪ⮢ � ��ࠦ����. �� ��ࠦ���� ᥬ����᪨ ���� ����⠭⮩ ⨯� unsigned � ����� ���� �ᯮ�짮���� � �� ����, ��� �ॡ���� ����⠭�. �᭮���� �ਬ������ �� ������ ��室�� �� �易� � ⠪��� ����ணࠬ���� ��� ��।������ ����� � � ��⥬�� �����-�뢮��. ������ sizeof ����� ���� ⠪�� �ਬ����� � � �����祭���� � ��㣫� ��� ����� ⨯�. � �⮬ ��砥 ��� �뤠�� ࠧ��� � ����� ��ꥪ� 㪠������� ⨯�. ������ new ᮧ���� ��ꥪ� � ⠪�� ������ ⨯� (type-name) (�. #8.7), � ���� �� �ਬ������. �६� ����� ᮧ������� �� ����� ����樨 new ��ꥪ� �� ��࠭�祭� ⮩ ��������, � ���ன �� ᮧ���. ������ new �����頥� 㪠��⥫� �� ᮧ����� ��ꥪ�, �.�. �ਬ���⥫쭮 � ��ꥪ�� ⨯� �, �����頥��� ���祭�� ⨯� * �. ������, ⨯, �뤠��� ��� ���ᨢ� ⨯� ��, �� ��. ���ਬ�� new int � new int[10] �����頥� int*. ��. #17, ��� ��⠫쭮 ��ᬮ�७� �ࠢ����� ������ �������. 7.3 ���⨯����⨢�� ����樨 ----------------------------------------------------------------- ���⨯����⨢�� ����樨 *, /, % �믮������� �� ���ࠢ�. �믮������� ����� ��䬥��᪨� �८�ࠧ������. ���⨯����⨢���-��ࠦ����: ��ࠦ����*��ࠦ���� ��ࠦ����/��ࠦ���� ��ࠦ����%��ࠦ���� ����ୠ� ������ * ������砥� 㬭������. ������ * ���樠⨢��� � ��ࠦ���� � ���쪨�� ᮬ����⥫ﬨ �� ����� ��� ����� ���� ��ॣ�㯯���� ��������. ����ୠ� ������ / ������砥� �������. �� ������� ������⥫��� 楫�� ���� ���� ����뢠����, �� � ���� �� ���࠭��� ����⥫��, � ᯮᮡ ����뢠��� ����� ��� ��設��-����ᨬ. �� ��� ��設��, ��ᬠ�ਢ����� � ������ �㪮���⢥, ���⮪ �� ������� ����� �� �� ����, �� � �������. �ᥣ�� �ࠢ������, �� (a/b)*b+a%b ࠢ�� � (� b �� ࠢ�� 0). ����ୠ� ������ % �뤠�� ���⮪ �� ������� ��ࢮ�� ��ࠦ���� �� ��. �믮������� ����� ��䬥��᪨� �८�ࠧ������. ���࠭�� �� ������ ���� ⨯� float. 7.4 ����⨢�� ����樨 ----------------------------------------------------------------- ����⨢�� ����樨 + � - �믮������� �� ���ࠢ�. �ந�������� ����� ��䬥��᪨� �८�ࠧ������. ��� ������ ����樨 ������� ������� �������⥫�� ����������, �易��� � ⨯�� ���࠭���. ����⨢���-��ࠦ����: ��ࠦ���� + ��ࠦ���� ��ࠦ���� - ��ࠦ���� ������⮬ ����樨 + ���� �㬬� ���࠭���. ����� ᪫��뢠�� 㪠��⥫� �� ��ꥪ� ���ᨢ� � ���祭��� ��� 楫������� ⨯�. ������ �� ��� ����� �८�ࠧ���� � ���᭮�� ᬥ饭�� �� ����� 㬭������ ��� �� ����� ��ꥪ�, �� ����� 㪠�뢠�� ��� 㪠��⥫�. ������⮬ ���� 㪠��⥫� ⮣� �� ⨯�, �� � ��室�� 㪠��⥫�, ����� 㪠�뢠�� �� ��㣮� ��ꥪ� � ⮬ �� ���ᨢ�, ᬥ饭�� ᮮ⢥�����騬 ��ࠧ�� �⭮�⥫쭮 ��室���� ��ꥪ�. ����� ��ࠧ��, � � - �� 㪠��⥫� �� ��ꥪ� � ���ᨢ�, � ��ࠦ���� �+1 ���� 㪠��⥫�� �� ���騩 ��ꥪ� �⮣� ���ᨢ�. ������� ��㣨� ⨯� �������権 ��� 㪠��⥫�� �� ࠧ�襭�. ������ + ���樠⨢��, � ��ࠦ���� � ���쪨�� ����묨 �� ����� ��� ����� ���� ���㯮�冷祭� ��������. ������⮬ ����樨 - ���� ࠧ����� ���࠭���. �믮������� ����� ��䬥��᪨� �८�ࠧ������. �� ⮣�, ���祭�� 楫������� ⨯� ����� ���� ���⥭� �� 㪠��⥫�, ��祬 ������� � �� ᠬ� �८�ࠧ������, �� � �� ����樨 �����. �� ���⠭�� ���� 㪠��⥫�� �� ��ꥪ�� ������ ⨯� १���� �८�ࠧ���� (���।�⢮� ������� �� ����� ��ꥪ�) � 楫������� ���祭��, �।�⠢���饬� ᮡ�� � ��ꥪ⮢, ࠧ�������� 㪠��⥫ﬨ. � ����ᨬ��� �� ��設� १������饥 楫������ ���祭�� ����� ���� ⨯� int ��� long; �. #2.6. � 㪠��⥫� �� 㪠�뢠�� �� ��ꥪ�� ������ � ⮣� �� ���ᨢ�, � ⠪�� �८�ࠧ������ ����� �ਢ��� � ���������� ������⠬, ����� 㪠��⥫� ���� �� ��ꥪ�� ����������� ⨯� �� ��易�� �⫨����� �� ����稭�, ����� ����� ��ꥪ�. 7.5 ����樨 ᤢ��� ----------------------------------------------------------------- ����樨 ᤢ��� << � >> ��㯯������� �� ���ࠢ�. ��� ����� ����権 ������� ����� ��䬥��᪨� �८�ࠧ������ �� ���࠭���, ����� �� ������ ������ ���� 楫�����. ��⥬ �ࠢ� ���࠭� �८�ࠧ���� � ⨯� int; ⨯ १���� �㤥� �� ��, �� � � ������ ���࠭��. ������� �� ��।����, � �ࠢ� ���࠭� ����⥫��, ��� ����� ��� ࠢ�� ����� ��ꥪ� � ����. ��ࠦ����-ᤢ��� ��ࠦ���� << ��ࠦ���� ��ࠦ���� >> ��ࠦ���� ���祭��� ��ࠦ���� �1<<E2 ���� E1 (�������㥬�� ��� ��������� ��⮢), ᤢ����� ����� �� �2 ��⮢; �������騥�� ���� ����������� ��ﬨ. ���祭��� ��ࠦ���� �1>>E2 ���� �1, ᤢ����� ��ࠢ� �� �2 ��⮢. �ࠢ� ᤢ�� ��࠭���� �㤥� �����᪨� (���������� ��ﬨ), �� ����, �� ⨯ �1 unsigned; � ��⨢��� ��砥 �� ����� ���� ��䬥��᪨� (����� ���� ����������� ������ ��������� ࠧ�鸞). 7.6 ����樨 �⭮襭�� ----------------------------------------------------------------- ����樨 �⭮襭�� �믮������� �� ���ࠢ�, �� ��� 䠪� �� �祭� �������; ��ࠦ���� �<B<C �� ����砥� ⮣�, �� ��� �������� �� ������ �������. ��ࠦ����-�⭮襭��: ��ࠦ���� < ��ࠦ���� ��ࠦ���� > ��ࠦ���� ��ࠦ���� <= ��ࠦ���� ��ࠦ���� >= ��ࠦ���� ����樨 < ("�����"), > ("�����"), <= ("����� ��� ࠢ��") � >= ("����� ��� ࠢ��") �� ���� 0, � 㪠������ �⭮襭�� �����, � 1, � ��� ��⨭��. ��� १���� int. �믮������� ����� ��䬥��᪨� �८�ࠧ������. ����� �ࠢ�������� ��� 㪠��⥫�; १���� ��� �� �⭮�⥫쭮�� ࠧ��饭�� 㪠�뢠���� ��ꥪ⮢ � ���᭮� ����࠭�⢥. ������� �ࠢ����� 㪠��⥫�� �� ������ �� ࠧ��饭�� ��ꥪ⮢ � ����� ⮫쪮 � ⮬ ��砥, � ��� 㪠�뢠�� �� ��ꥪ�� ������ � ⮣� �� ���ᨢ�. 7.7 ����樨 ࠢ���⢠ ----------------------------------------------------------------- ��ࠦ����-ࠢ���⢠ ��ࠦ����==��ࠦ���� ��ࠦ����!=��ࠦ���� ����樨 == � != ��������� ������ �⭮襭��, �� �᪫�祭��� �� ����� ������� �ਮ���. (���⮬� ���祭�� ��ࠦ���� A<B==C<D ࠢ�� 1 ��直� ࠧ, ����� ��ࠦ���� A<B � C<D ����� ���������� ���祭�� ��⨭����). �����⥫� ����� �ࠢ������ � 楫� ⮫쪮 ⮣��, ����� 楫� ���� ����⠭� 0. �����⥫�, ���� ����� ���祭�� 0, �� 㪠�뢠�� �� �� ����� ��ꥪ� � �� ᠬ�� ���� ����뢠���� ࠢ�� 0; ��饯ਭ�� ����� ⠪�� 㪠��⥫� �㫥�. 7.8 ��⮢�� ������ � (AND) ----------------------------------------------------------------- �-��ࠦ����: ��ࠦ���� & ��ࠦ���� ������ & ���樠⨢�� � ��ࠦ����, ������饥 & ����� ���� ���㯮�冷祭�. �믮������� ����� ��䬥��᪨� �८�ࠧ������; १���⮬ ���� ��⮢�� �㭪�� AND ���࠭���. ������ �ਬ����� ⮫쪮 � 楫����� ���࠭���. 7.9 ��⮢�� ������ "�᪫���饥 ���" ----------------------------------------------------------------- ��ࠦ���� �᪫���饣� ���: ��ࠦ���� ^ ������ ^ ���樠⨢�� � ��ࠦ����, ������饥 ^ ����� ���� ���㯮�冷祭�. �믮������� ����� ��䬥��᪨� �८�ࠧ������; १���⮬ ���� ��⮢�� �㭪�� OR ���࠭���. ������ �ਬ����� ⮫쪮 � 楫����� ���࠭���. 7.10 ��⮢�� ������ "������饥 ���" ----------------------------------------------------------------- ��ࠦ���� ������饣� ���: ��ࠦ���� : ��ࠦ���� ������ : ���樠⨢�� � ��ࠦ����, ������饥 :, ����� ���� ���㯮�冷祭�. �믮������� ����� ��䬥��᪨� �८�ࠧ������; १���⮬ ���� ��⮢�� �㭪�� ��� ���࠭���. ������ �ਬ����� ⮫쪮 � 楫����� ���࠭���. 7.11 �����᪠� ������ � ----------------------------------------------------------------- ��ࠦ���� ������� �: ��ࠦ���� && ��ࠦ���� ������ && �믮������ �� ���ࠢ�. ��� �����頥� 1, � ��� �� ���࠭�� �⫨�� �� ���, � 0 � ��⨢��� ��砥. � �⫨稥 �� & ������ && ��࠭���� ������ �� ���ࠢ�; ����� ⮣�, � ���� ���࠭� ࠢ�� 0, ��ன ����� �� ��������. ���࠭�� �� ��易⥫쭮 ������ ���� ���������� ⨯��, �� ����� �� ��� ��易� ���� ���� ������ �� �᭮���� ⨯��, ���� ⨯�� pointer. ��� १���� �ᥣ�� int. 7.12 �����᪠� ������ ��� ----------------------------------------------------------------- ��ࠦ���� ������� ��� ��ࠦ���� :: ��ࠦ���� ������ :: �믮������ �� ���ࠢ�. ��� �����頥� 1, � ���� �� �� ���࠭��� �⫨祭 �� ���, � 0 � ��⨢��� ��砥. � �⫨稥 �� :, :: ��࠭���� ������ �� ���ࠢ�; ����� ⮣�, ��ன ���࠭� ����� �� ��������, � ���� �� ࠢ�� ���. ���࠭�� �� ��易⥫쭮 ������ ���� ���������� ⨯��, �� ����� �� ��� ��易� ���� ���� ������ �� �᭮���� ⨯��, ���� ⨯�� pointer. ��� १���� �ᥣ�� int. 7.13 ����樨 ���� ----------------------------------------------------------------- ��ࠦ����-���� ��ࠦ����?��ࠦ����:��ࠦ���� ���� ����樨 �믮������� �ࠢ� ������. �������� ���祭�� ��ࢮ�� ��ࠦ����, � � ��� �⫨筮 �� ���, � १���⮬ �㤥� ���祭�� ��ண� ��ࠦ����, � ��⨢��� ��砥 - ���쥣� ��ࠦ����. � �� ��������, �믮������� ����� ��䬥��᪨� �८�ࠧ������ ��� �ਢ������ ��ண� � ���쥣� ��ࠦ���� � ��饬� ⨯�; � ��⨢��� ��砥, � ��� ��ࠦ���� ����� 㪠��⥫ﬨ ����������� ⨯�, � १���� ����� �� �� ⨯; � ��⨢��� ��砥 ���� ��ࠦ���� ������ ���� 㪠��⥫��, � ��㣮� - ����⠭⮩ 0, � १���� ����� ⨯ pointer. �� ��ண� � ���쥣� ��ࠦ���� �������� ⮫쪮 ����. 7.14 ����樨 ��ᢠ������ ----------------------------------------------------------------- ������� �� ����権 ��ᢠ������, ������ �� ������ �믮������ �ࠢ� ������. �� ����樨 �ॡ��� � ����⢥ ��� ������ ���࠭�� ���祭�� lvalue, � ⨯�� ��ࠦ���� ��ᢠ������ ���� ⨯ ��� ������ ���࠭��. ���祭��� ��ࠦ���� ��ᢠ������ ���� ���祭�� ��� ������ ���࠭��, �� ⮣�, ��� �ந��諮 ��ᢠ������. ��ࠦ����-��ᢠ������: ��ࠦ���� ������-��ᢠ������ ��ࠦ���� ������-��ᢠ������ = += -= *= /= %= >>= <<= &= ~= := ����� �믮������ ���⮥ ��ᢠ������ � "=" , ���祭�� ��ࠦ���� ������� ���祭�� ��ꥪ�, �� ����� ��뫠���� ���� ���࠭�. � ��� ���࠭�� ��䬥���� ⨯�, � ��। ��ᢠ������� �ࠢ� ���࠭� �८�ࠧ���� � ⨯� ������ ���࠭��. ��� ���࠭�� ����� ���� ��ꥪ⠬� ����� ������ � ⮣� �� ⨯� ��� ��ꥪ⠬� ⨯� pointer ���������� ⨯��. �����⥫� �� ����� ����� ���� ���� 㪠��⥫� �� ��騩 ������ ����� �⮣� ����� (�. #8.5.3). �����⥫� �� ����� ����� ���� ���� 㪠��⥫� ⨯� *void. ��࠭������, �� ��ᢠ������ 㪠��⥫� ����⠭�� 0 ���� �㫥��� 㪠��⥫�, ����� �⫨砥��� �� 㪠��⥫� �� �� ��ꥪ�. � ��⢠� ��ࠦ���� ���� �1 op=�2, ��� op - ���� �� �������� ��� ����権, ����� �㤨��, � �����, �� ��� ������⭮ ��ࠦ���� �1=�1 op (�2); ������ ��ࠦ���� �1 �������� ⮫쪮 ���� ࠧ. � ��砥 ����権 += � -= ���� ���࠭� ����� ���� 㪠��⥫��, � � �⮬ ��砥 楫����� �ࠢ� ���࠭� �८�ࠧ���� ��� ������� � #7.4; �� �ࠢ� ���࠭�� � �� �⫨�� �� 㪠��⥫�� ���� ���࠭�� ������ ����� ��䬥��᪨� ⨯. 7.15 ������ ������ ----------------------------------------------------------------- ��ࠦ����-�-����⮩: ��ࠦ���� , ��ࠦ���� ��� ��ࠦ����, ࠧ�������� ����⮩, �������� �� ���ࠢ�, � ���祭�� ������ ���࠭�� ����뢠����. ����� � ���祭��� १���� ���� ⨯ � ���祭�� �ࠢ��� ���࠭��. �� ������ �믮������ �� ���ࠢ�. � ���⥪��, ��� ������ �ᯮ������ ��� ᯥ樠���� 楫��, ���ਬ��, ��� ࠧ������� 䠪��᪨� ��㬥�⮢ �㭪権 (#7.1) � ᯨ᪠� ���樠����� (#8.6), ��ࠦ����, ������騥 ������ ������, ����뢠���� � �⮩ �����, ������ ���������� � ��㣫� ���; ���ਬ��, �㭪�� f (a,(t=3,t+2),c) ����� �� ��㬥��, ��ன �� ������ ࠢ�� 5. 7.16 ����樨 ��४���� ----------------------------------------------------------------- ������ ����樨 ����� ���� ���ᠭ� ⠪�� ��ࠧ��, �⮡� ���ਭ����� ��ꥪ�� ����� ��� ���࠭�� (�. #8.5.10). �ਮ��� ����権 �������� �����. ���祭�� ����� ⠪�� ����� �������� � ��砥 �ਬ������ �� � ��ꥪ⠬, �⫨�� �� ��ꥪ⮢ �����, �� �।���⥫쭮 ��।������� ���祭�� ����樨 = � (㭠୮�) &, ����� ���� �������� �� �ਬ������ �� � ��ꥪ⠬ �����. ���祭�� �������� ����� �� ��।������ ��� ������� ������� ��������� ��㣨� ����� � ⥬� �� ��㬥�⠬�. ���ਬ��, ++� ����砥� �+=1. ����� �⭮襭�� �� ������������ ��� �������� ����権, � ���짮��⥫� �� ��।���� �� ⠪�� ��ࠧ��. ������� �������, ���ਬ��, ��ᢠ������, �ॡ���, �⮡� ���࠭� �� lvalue; � ��饬 ��砥 �� �� �ॡ����. 7.16.1 ����� ������� ----------------------------------------------------------------- ����� ������, ��䨪� ��� ����䨪�, ����� ���� ��।���� ���� ��� 童� �㭪樨 (�. #8.5.4), �� ����饩 ��㬥�⮢, ���� ��� friend-�㭪��, (�. #8.5.9) ������ ���� ��㬥��. ����� ��ࠧ��, ��� ��� 㭠୮�� ������ @, ��� x@, ⠪ � @� ������������ ��� �.������@() ��� ������@(x). � ��।����� ��� �㭪樨, � �ᯮ������ ��ࢠ� �� ������権. ����� ������� ++ � -- ��४�뢠����, � ���������� �⫨��� ��䨪᭮� �ਬ������ �� ����䨪᭮��. 7.16.2 ��⮢� ����樨 ----------------------------------------------------------------- ��⮢�� ������ ��।������ ���� ��� 童� �㭪樨, ����饩 ���� ��㬥��, ���� ��� friend �㭪��, ������ ��� ��㬥��. ����� ��ࠧ��, ��� �� ��⮢�� ����樨 @, x@y ����������� ���� ��� �.������@(y), ���� ��� ������@(x,y). � ��� �㭪樨 ������@ ��।�����, � �ᯮ������ ��ࢠ� �� ������権. 7.16.3 ���樠��� ������� ----------------------------------------------------------------- �맮� �㭪樨 ��ࢨ筮�-��ࠦ���� (ᯨ᮪-��ࠦ���� opt) � ���������� ��ࢨ筮�-��ࠦ����[��ࠦ����] ������� ���嬥��묨 �����ﬨ. �����, ��।����騥 �㭪�� - ������() � ������[], ᮮ⢥��⢥���. ����� ��ࠧ��, �맮� x(arg) ���������� ��� x.������()(arg) ��� ��ꥪ� ����� � ������ �. ��� ᯨ᪠ ��㬥�⮢ ��।������ �� ����� �㭪樨 ������(). ���������� x[y] ����������� ��� �.������[] (y). ��� ��㬥�� ��।����� �� ����� �㭪樨 ������[]. 8. �������� ----------------------------------------------------------------- ���ᠭ�� �ᯮ������� ��� 㪠����� ������樨, ������ �� �� ���� ������� �����䨪����; ��� �� ��易⥫쭮 १�ࢨ���� ������, ᮮ⢥�������� �����䨪����. ���ᠭ�� ����� ���: ���ᠭ��: ᯥ�䨪����-���ᠭ�� opt c��᮪-����⥫�� opt; name-����⥫� asm-����⥫� ����⥫� � ᯨ᪥ ����⥫�� ᮤ�ঠ� ����뢠��� �����䨪����. ���쪮 � ��।������ (#10.1) ��� ���ᠭ�� ���譥� �㭪樨 ᯥ�䨪���� ���ᠭ�� ����� ���� ���饭�. ���쪮 � ���ᠭ�� ����� (#8.10), �.�. ����� ᯥ�䨪��� ���ᠭ�� ���� �lass-ᯥ�䨪�� ��� enum-ᯥ�䨪��, ᯨ᮪ ����⥫�� ����� ���� �����. Name-����⥫� ��ᬠ�ਢ����� � #8.8; asm-����⥫� - � #8.11. ᯥ�䨪����-���ᠭ��: ᯥ�䨪���-���ᠭ�� ᯥ�䨪����-���ᠭ�� opt ᯥ�䨪���-���ᠭ��: ss-ᯥ�䨪��� type-ᯥ�䨪��� fct-ᯥ�䨪��� friend typedef ���᮪ ������ ���� ᠬ�ᮣ��ᮢ���� � ��, ����뢠���� ����. 8.1 ������� ����⢨� � ᯥ�䨪���� ����� ����� ----------------------------------------------------------------- ����䨪���� ����ᮢ ����� (ss-ᯥ�䨪����) ��: ss-ᯥ�䨪��: auto (��⮬���᪨�) static (����᪨�) extern (���譨�) register (ॣ����) ���ᠭ�� auto, static � register �㦠� ⠪�� � ����⢥ ��।������ � ⮬ ��, �� ��� ��뢠�� १�ࢨ���� �㦭��� ������⢠ �����. � ���ᠭ�� extern �� ���� ��।������� (�.�. ��� �� ���ᠭ�� ������, �� ���ᠭ�� �㭪樨), � ������ ������⢮���� ���譥� ��।������ (#10) 㪠�뢠���� �����䨪�� ��� ⮩ �㭪樨, � ���ன ��� ���ᠭ�. ���ᠭ�� register ���� �ᥣ� �।�⠢��� ᥡ� ��� ���ᠭ�� auto ����� � ������� ����������, �� ���ᠭ�� ⠪�� ��ࠧ�� ��६���� ���� ��� �ᯮ�짮������. ����� ����� ���� �������. � ��६���� ⨯� register ����� �ਬ����� ������ ����� ���� &. ����䨪���� auto ��� register ����� ���� �ᯮ�짮���� ⮫쪮 ��� ����, ���ᠭ��� ����� ����� ��� ��� �ଠ���� ��ࠬ��. ����� ����� �� ����� ���� �� ����᪨� �㭪権, �� �����- ���� ����᪨� �ଠ���� ��㬥�⮢. �������� ����⢨� �����, ���ᠭ���� �� ����� ᯥ�䨪��� static ��� �㭪樨 ��� �����, ���� 䠩� (#4.1). �������� ����⢨� ����� ��ꥪ� ��� �㭪樨, ���ᠭ��� ��� extern, ���� �ணࠬ�� (#4.1). ���ᠭ�� ����� ᮤ�ঠ�� �� ����� ������ ss-ᯥ�䨪���. � � ���ᠭ�� ��������� ss-ᯥ�䨪���, ����� ����� �ਭ������� ��⮬���᪨� (auto) ����� �㭪樨 � ����᪨� (static) ��� ��. �᪫�祭��: �㭪樨 ������� �� �뢠�� ��⮬���᪨��. � � ���ᠭ�� ��������� ss-ᯥ�䨪���, ������� ����⢨� ����� ��⠥��� ࠢ��� local � �����, class � ���ᠭ�� ����� � 䠩��� (file) �� ��� ��⠫��� �����. �᪫�祭��: �������� ����⢨� ����� �㭪樨, ����� ���ᠭ�, �� �� ��।����� (#10), ���� �ணࠬ��, � ⮫쪮 ��� � �� ���ᠭ� ��� static. ������� ᯥ�䨪���� ����� ���� �ᯮ�짮���� ⮫쪮 � ���ᠭ��� � ��।������� �㭪権: fct-ᯥ�䨪����: overload inline virtual ����䨪��� overload ���� ����������� �ᯮ�짮���� ���� ��� ��� ��।������ ���쪨� �㭪権; �. #8.9. �㭪��, ���ᠭ��� ��� overload, �� ����� ����� ���祭�� ��㬥�⮢ �� 㬮�砭��; �. #8.3. ����䨪��� inline - �� ⮫쪮 ����� ����������, �� �����騩 �� ������ �ணࠬ��, � �� ����� ���� �������. �� �ᯮ������, ��� ���᪠��� ����������, �� �� ���饭�� � �㭪樨 ⥪��㠫쭠� ����⠭���� ���� ⥫� �㭪樨 �।����⥫쭥�, 祬 ॠ������ ���筮�� ���浪� �맮�� �㭪樨. ����䨪��� inline ����� ���� �ᯮ�짮��� ⮫쪮 � ��।������� �㭪権 (#10.1). ������� �㭪樨 (#8.5.2), ��।������ ����� ���ᠭ�� ��� �����, ���� inline (������) �� 㬮�砭��. ����䨪��� virtual �ᯮ������ ⮫쪮 � ���ᠭ��� ���⮢ �����; �. #8.8.4. ����䨪��� friend ����� �ᯮ�짮������ ⮫쪮 ����� ���ᠭ�� �����; �. #8.5.9. � �� ����� �ᯮ�짮������ ��� ��।������ �㭪樨. ����䨪��� typedef �ᯮ������ ��� �������� ����� ⨯�; �. #8.8. 8.2 ����䨪���� ⨯� ----------------------------------------------------------------- ����䨪���� ⨯� ��: type-specifier: char short int long unsigned float double const void class-specifier typedef-name enum-specifier ����� long, short � unsigned ��� ��ᬠ�ਢ��� ��� �ਫ���⥫��. ��� ����� �ਬ������� � int; unsigned ⠪�� ����� ���� �ਬ����� � char, short � long. ����� const ����� �������� � ��� ࠧ�襭���� ᯥ�䨪���� ⨯�. � ��㣮� ���, ⮫쪮 ���� ᯥ�䨪��� ⨯� ����� ���� ��� � ���ᠭ��. ��ꥪ� ⨯� const �� ���� lvalue. � � ���ᠭ�� �ய�饭 ᯥ�䨪��� ⨯�, �।���������� ⨯ int. ����䨪���� class � enum ��ᬠ�ਢ����� ᮮ⢥��⢥��� � #8.5 � #8.10. 8.3 ����⥫� ----------------------------------------------------------------- �室�騩 � ���ᠭ�� ᯨ᮪ ����⥫�� �।�⠢��� ᮡ�� ������⥫쭮��� ࠧ�������� �����묨 ����⥫��, ����� �� ������ ����� ����� ���樠������. ᯨ᮪-����⥫��: init-����⥫� init-����⥫�, ᯨ᮪-����⥫�� init-����⥫�: ����⥫� ���樠������ opt ���樠������� ��ᬠ�ਢ����� � #8.6. ����䨪���� � ���ᠭ�� 㪠�뢠�� ⨯ � ����� ����� ��ꥪ⮢, �� ����� ��뫠���� ����⥫�. ���⠪�� ����⥫�� ����� ���騩 ���: ����⥫�: dname ( ����⥫� ) * const opt ����⥫� & const opt ����⥫� ����⥫� ( ᯨ᮪-����⥫��-��㬥�⮢ ) ����⥫� [ ����⠭⭮�-��ࠦ���� opt ] dname: ���⮥-dname typedef-name . ���⮥-dname ����e-dname: �����䨪��� typedef-name ~ typedef-name ���-������-�㭪樨 ���冷� �믮������ ⠪�� ��, ��� � ��ࠦ�����. 8.4 ���祭�� ����⥫�� ----------------------------------------------------------------- ���祭�� ����⥫� ��⮨� � ⮬, �� ����� ��������� ⮩ �� ᠬ�� ���, �� � ����⥫�, ������ � ��ࠦ����, � ��� �뤠�� ��ꥪ� 㪠������� ⨯� � 㪠������� ����� �����. ����� ����⥫� ᮤ�ন� ⮫쪮 ���� dname, ����� � ��।���� ����뢠��� �����䨪���. �� �᪫�祭��� ���ᠭ�� �������� ᯥ���᪨� �㭪権 (�. #8.5.2), dname - �� ���� �����䨪���. � � ����⢥ ����⥫� ������ ���� �����䨪���, � �� ����� ⨯, 㪠�뢠��� � ��������� ᯥ�䨪��� ���ᠭ��. ����⥫�, �����祭�� � ��㣫� ���, �����祭 ���筮�� ����⥫� ��� ��㣫�� ���, �� ��㣫� ��� ����� �������� �裡 � ��⠢��� ����⥫��; �ਬ��� �ਢ����� ����. �।�⠢�� ᥡ� ���ᠭ��: T D1 ��� � - ᯥ�䨪��� ⨯� (��� int, ���ਬ��), � D1 - ����⥫�. �।�������, �� � १���� �⮣� ���ᠭ�� �����䨪��� ����砥� ⨯ "...", ��� "...", ����, � D1 - �� �⤥��� �����䨪��� (���, ���ਬ��, � � "int �" - �� ���� int). �����, � D1 ����� ��� *D � ⨯�� ᮤ�ঠ饣��� �����䨪��� �㤥� "...㪠��⥫� �� �" ("... pointer to T"). � D1 ����� ��� * const D � ⨯�� ᮤ�ঠ饣��� �����䨪��� �㤥� "...����⠭�� 㪠��⥫� �� �", �.�. �� �㤥� ⮣� �� ⨯�, �� � *D, �� ᮤ�ঠ騩�� �����䨪��� �� ���� lvalue. � D1 ����� ��� &D ��� & const D � ⨯�� ᮤ�ঠ饣��� �����䨪��� �㤥� "...��뫪� �� �". �.�. ��뫪� �� ��।������ �� ����� ���� lvalue, �ᯮ�짮����� ����⠭�� ����譥. � D1 ����� ��� D (ᯨ᮪-���ᠭ��-��㬥�⮢) ⮣�� ᮤ�ঠ騩�� �����䨪��� ����� ⨯ "...�㭪��, ��㬥�⠬� ���ன ����� ��㬥��� ᯨ᪠ ��ࠦ����, � ��������� ���祭�� �"). ᯨ᮪-���ᠭ��-��㬥�⮢: ᯨ᮪-���ᠭ��-��㬥�⮢ opt...opt ᯨ᮪-���ᠭ��-��㬥�⮢: ᯨ᮪-���ᠭ��-��㬥�⮢, ���ᠭ��-��㬥�� ���ᠭ��-��㬥�� ���ᠭ��-��㬥��: ����⥫� decl-ᯥ�䨪�� ����⥫� decl-c���䨪�� = ����⠭⭮�=��ࠦ���� � ᯨ᮪-���ᠭ��-��㬥�⮢ ��࠭�稢����� ���ᮬ, � � ��㬥�⮢ ������ ���� ࠢ�� ��� �����, 祬 � ��㬥�⮢ ��।�������� ⨯�; � �� ���⮩, � �㭪�� �� ����� ��㬥�⮢. �� ���ᠭ�� �㭪樨 ������ �筮 ᮮ⢥��⢮���� ��� ⨯� �����饭���� ���祭��, ⠪ ��� � ⨯� ��㬥�⮢. ��� ᯨ᮪-���ᠭ��-��㬥�⮢ �ᯮ������ ��� ��ન � �८�ࠧ������ 䠪��᪨� ��㬥�⮢ �� �맮��� �㭪樨 � ��� ��ન 㪠��⥫� �� ������ ���祭�� �㭪樨. � ����⠭⭮� ��ࠦ���� ��।������ ��� ���樠������ ��� ��㬥��, � �� ���祭�� �ᯮ������ ��� ���祭�� ��㬥�� �� 㬮�砭��. ���祭�� �� 㬮�砭�� �� ����� ���� ��८�।����� � �����饬 ���ᠭ��. ������, ���ᠭ�� ����� ���� ��������� ���祭�ﬨ �� 㬮�砭�� ��� �� ��㬥�⮢, ����� ⠪�� ���祭�� �� ��ᢠ������� � �।��饬 ���ᠭ��. ���祭�� �� 㬮�砭�� ����� ���� �ᯮ�짮���� �� �맮��� �㭪樨, ��� �ய�饭� ��㬥���. �㭪�� � ���祭�ﬨ �� 㬮�砭�� �� ����� ����뢠���� ��� overload. � ���ᠭ�� ��㬥�� ����� ���� left-out (��� � abstract-����⥫�, �. #8.7). �� ᠬ�� ���� �� 䠪�, �� ���� ���ᠭ�� �����䨪��� �㤥� �ᯮ�짮������, �.�. ��� ������� ����⢨� ��࠭�祭� ���ᠭ��� �㭪樨. � D1 ����� ��� D [����⠭⭮�-��ࠦ����] ��� D [ ] ⮣�� ᮤ�ঠ騩�� �����䨪��� ����� ⨯ "...���ᨢ �". � ��ࢮ� ��砥 ����⠭⭮� ��ࠦ���� - �� ��ࠦ����, ���祭�� ���ண� ����� ��।����� �� �६� �������樨 � ��� ����� ⨯ int. (����⠭�� ��ࠦ���� ��।����� � #15). ����� ���쪮 ᯥ�䨪�権 ���� "���ᨢ ..." ����뢠���� ᬥ��묨, ᮧ������ ��������� ���ᨢ; ����⠭�� ��ࠦ����, ����� ��।����� ��� �࠭��� ����� ������⢮���� ⮫쪮 � ��ࢮ�� 童�� �⮩ ������⥫쭮��. ����� �ய�� �������, ����� ���ᨢ ���� ���譨�, � ��� 䠪��� ��।������, � १���� ���ண� � ��।������ ������, �ਢ������ � ��㣮� ����. ��ࢮ� ����⠭⭮� ��ࠦ���� ⠪�� ����� ���� ���饭�, ����� �� ����⥫�� ��� ���樠������. � �⮬ ��砥 �����䨪��� ��������, ��室� �� � �ਢ������� ���樠�����㥬�� ���⮢. ���ᨢ ����� ���� ��ࠧ���� �� ���⮢ ������ �� �᭮���� ⨯��, �� 㪠��⥫��, ������� � ��ꥤ������ ��� �� ��㣮�� ���ᨢ� (��� ����祭�� �������୮�� ���ᨢ�). �� �� ����������, ����� ࠧ�襭� � �窨 �७�� 㪠������� ��� ᨭ⠪��, 䠪��᪨ �����⨬�. ��࠭�祭�� ���騥: �㭪樨 �� ����� �������� ���ᨢ� ��� �㭪樨, ��� ��� ����� �������� 㪠��⥫� �� ���; �� ������� ���ᨢ�� �㭪権, �� �������� ���ᨢ� 㪠��⥫�� �� �㭪樨. � ����⢥ �ਬ�� ��ᬮ�ਬ ���ᠭ�� int i; int *ip; int f (); int *fip (); int (*pfi) (!; � ��� ����뢠���� 楫�� i; 㪠��⥫� ip �� 楫��, �㭪�� f, ��������� 楫��, �㭪�� fip, ��������� 㪠��⥫� �� 楫��, � 㪠��⥫� pfi �� �㭪��, ����� �����頥� 楫��. �ᮡ���� ������� �ࠢ���� ������ ��� ����⥫�. ���� � *fip() ����� �।�⠢��� � ���� *(fip()) ⠪ ��� �� �������� � ���ᠭ��, � ⠪�� �� �������樨 � ��ࠦ���� �ॡ�� ���饭�� � �㭪樨 fip � �����饥 �ᯮ�짮����� ��ᢥ���� ����樨 ��� �뤠� � ������� ����祭���� १���� (㪠��⥫�) 楫���. � ����⥫� (* pfi)() ���譨� ��㣫� ��� ����室���. ���, �筮 ⠪ ��, ��� � � ��ࠦ����, 㪠�뢠��, �� ��ᢥ���� ������ �१ 㪠��⥫� �� �㭪�� �뤠�� �㭪��, ����� ��⥬ ��뢠����; �� �맢����� �㭪�� �����頥� 楫��. �㭪樨 f � fip ���ᠭ� ��� �㭪樨 ��� ��㬥�⮢, � pfi 㪠�뢠�� �� �㭪��, ����� ��㬥�⮢ �� �����. ���ᠭ�� const a = 10, *pc = &a, *const cpc = pc; int b, *const cp = &b; ����뢠�� �: 楫�� ����⠭�; ��: 㪠��⥫� �� 楫�� ����⠭��; ���: ����⠭�� 㪠��⥫� �� 楫�� ����⠭��; b: 楫��; ��: ����⠭�� 㪠��⥫� �� 楫��. ���祭�� �, ��� � �� �� ����� ���� �������� �� ���樠����樨. ���祭�� �� ����� �������� � ���⮬� ����� ����� ��ꥪ⮬, �� ����� 㪠�뢠�� ��. �ਬ��� ��ࠧ�襭��� ����権: � = 1; �++; *��=2; ��=&�; ���++; �ਬ��� �ࠢ����� ����権: b = a; *��=�; ��++; ��=���; ���ᠭ�� fseek(FILE*, long, int); ����뢠�� �㭪��, ������� �� ��㬥�� ᯥ樠���� ⨯��. �.�. ⨯ �������饣� ���祭�� �� ��।����, �� �।���������� int (# 8.2). ���ᠭ�� point (int=0, int=0); ����뢠�� �㭪��, ����� ����� ��뢠���� ��� ��� ��㬥�⮢, � ����� ��� ���� ��㬥�⠬� ⨯� int. ���ਬ��, point (1,2); point (1) /* ����砥� point(1,0); */ point () /* ����砥� point(0,0); */ ���ᠭ�� printf (char*...); ����뢠�� �㭪��, ����� ����� ���� �맢��� � ��६���� �� � ⨯�� ��㬥�⮢. ���ਬ��, printf ("hello, world"); printf ("a=%d b=%d",a,b); printf ("string=%s",st); ������, �㭪�� ������ ����� char* � ����⢥ ��� ��ࢮ�� ��㬥��. ������騩 �ਬ�� float fa[17], *afp[17]; ����뢠�� ���ᨢ �ᥫ ⨯� float � ���ᨢ 㪠��⥫�� �� �� �. � �������, static int x3d[3][5][7]; ����뢠�� ��嬥�� ���ᨢ 楫�� �ᥫ, ࠭� ���ண� ࠢ�� 3�6�7. ����� ��⠫쭮, �3d - �� ���ᨢ �� ��� ���⮢; ����� ���� - �� � � ��।� ���ᨢ �� ��� ���ᨢ��; ����� �� ��� ���ᨢ�� - �� ���ᨢ �� ᥬ� 楫�� �ᥫ. ������ �� ��ࠦ���� x3d, x3d[i], x3d[i][j], x3d[i][j][k] �ਥ����� � ��ࠦ����. ���� �� ����� ⨯ array, ������ - ⨯ int. 8.5 ���ᠭ�� ����ᮢ ----------------------------------------------------------------- ����� ��।���� ⨯. � ����� ����� ��稭����� typedef-name (��� ��।������ �����) (see #8.8), ��� ����� �ᯮ�짮������ ���� ����� ᠬ��� ᯥ�䨪��� �����. ��ꥪ�� ����� ����� �� ������⥫쭮�� ���⮢. class-ᯥ�䨪���: class-��������� { ᯨ᮪-童��� opt } class-��������� { ᯨ᮪-童��� opt ��騩: ᯨ- ᮪-童��� opt } class-���������: aggr �����䨪��� opt aggr �����䨪��� opt : ��騩 opt typedef-name aggr: class struct union ������� - �� �����, �� ����� ���ண� ����� ��騬� (public); �. #8.5.8. ��ꥤ������ - �� �������, ����� ᮤ�ন� ⮫쪮 ���� ���� � ����� ������ �६���; �. #8.5.12. ���᮪ ���⮢ ����� ����뢠�� �����, �㭪��, �����, typedef, enum � ����� ���� (field). ���� ��ᬠ�ਢ����� � #8.5.13. ���᮪ ���⮢ ⠪�� ����� ᮤ�ঠ�� ���ᠭ�� ���� ���⮢; �. #8.5.8. ᯨ᮪-���⮢: ���ᠭ��-���� ᯨ᮪-���⮢ opt ���ᠭ��-����: decl-ᯥ�䨪��� opt ����⥫�-���� ; ����⥫�-����: ����⥫� �����䨪��� : ����⠭⭮�-��ࠦ����; ��������, ����� ����� ��ꥪ⠬� �����, ����� ���� ��ꥪ⠬� ����ᮢ, ���ᠭ��� ࠭��. � ��⭮��, ����� cl ����� �� ᮤ�ঠ�� ��ꥪ�� ����� cl, �� �� ����� ᮤ�ঠ�� 㪠��⥫� �� ��ꥪ� ����� cl. ����� ��ꥪ⮢ � ࠧ����� ������ �� ��⨢���� ��� ���� � ����� ��६����. ���⮩ �ਬ�� ���ᠭ�� �������� struct tnode { char tword[20]; int count; tnode *left; tnode *right; }; ����� ��⮨� �� ���ᨢ� �� 20 ᨬ�����, 楫��� � ���� 㪠��⥫�� �� ������� ��������. ��� ⮫쪮 ������� �� ���ᠭ��, ���ᠭ�� tnode s, *sp ����뢠�� s ��� �������� ������� ���� � sp ��� 㪠��⥫� �� ��� ��������. �� ����稨 ��� ���ᠭ�� ��ࠦ���� sp->count ��뫠���� �� ���� count ⮩ ��������, �� ������ 㪠�뢠�� sp; s.left ��뫠���� �� 㪠��⥫� ������ �����ॢ� �������� s; a s.right->tword[0] ��뫠���� �� ���� ᨬ��� ���� tword �ࠢ��� �����ॢ� s. 8.5.1 ����᪨� ����� ----------------------------------------------------------------- ������� ������ ����� ����� ���� ����᪨� (static); ����� �㭪権 - �� �����. �������� �� ����� ���� auto, register ��� extern. ������� ⮫쪮 ���� ����� ���� static, ࠧ��������� ����� �ᥬ� ��ꥪ⠬� �����, � �ணࠬ��. �� ���� static (mem) ����� (cl) ����� ����� ��� cl:mem, �.�. ��� ��뫪� �� ��ꥪ�. �� ��������, ���� � �� ᮧ������ �� ������ ��ꥪ� ����� cl. 8.5.2 �������� �㭪権 ----------------------------------------------------------------- �㭪��, ���ᠭ��� ��� ���� (��� ᯥ�䨪��� friend (#8.5.9), ���뢠���� ���⮬ �㭪樨 � ��뢠����, �ᯮ���� ᨭ⠪�� ���� ����� (#7.1). ���ਬ��, struct tnode { char tword[20]; int count; tnode *left; tnode *right; void set (char* w,tnode* l,tnode* r); }; tnode n1, n2; n1.set ("asdf",&n2,0); n2.set ("ghjk",0,0); ��।������ ��ᬮ�७���� ���� �㭪樨 ������� ⮫쪮 ����� ������ ����⢨� ��� �����. �� ����砥�, �� �� ����� � �ᯮ�짮���� ����� ��� �����. � ��।������ ���� �㭪樨 ��室���� ��� ���ᠭ�� �����, ��� ���� �������� �� ����� ����� �����, �ᯮ���� ���ᠭ�� typedef-name . simple-dname �. #3.3. ��।������ �㭪樨 ��ᬮ�७� � #10.1. ���ਬ��: void tnode.set (char* w,tnode* l,tnode* r) { count = strlen (w); if (sizeof (tword) <= count) error ("tnode ��ப� �- ��� �������") strcpy (tword,w); left = l; right = r; } ��� �㭪樨 tnode.set ��।����, �� �㭪�� set ���� ���⮬ ����� tnode. �� ���� ����������� �ᯮ�짮���� ����� ���⮢ word, count, left � right. � ���� �㭪樨 ���� ����� ��뫠���� �� �� ��ꥪ�, ��� ���ண� �뫠 �맢��� �㭪��. �.�. � ���饭�� n1.set(...), tword ��뫠���� �� n1.tword, � � ���饭�� n2.set(...) - �� n2.tword. � �⮬ �ਬ�� �㭪樨 strlen, error, and strcpy �।���������� ���ᠭ�묨 ����� ��� ���譨� (�. #10.1). � ���� �㭪樨 ���祢�� �� this 㪠�뢠�� �� ��ꥪ�, ��� ���ண� ��뢠���� �㭪��. ����� this � �㭪樨, ����� ���� ���⮬ ����� cl, ���� *cl. � mem - �� ���� ����� cl, � mem � this->mem ���� ᨭ������� � ���� �㭪樨 ����� cl (� mem �� �ᯮ������ ��� ��� �����쭮� ��६����� � �����筮� ������). ������� �㭪樨 ����� ���� ��।���� � ���ᠭ�� ����� (#10.1). �����饭�� ��।������ ���� �㭪樨 ����� ���ᠭ�� ����� ���� "�⥭��ࠬ���" ��� ���ᠭ�� ��� � ���ᠭ�� ����� � �����饬 ��।������ ��� ������ (inline) (#8.1) �ࠧ� �� ���ᠭ�� �����. ���ਬ��: int b; struct x { int f () { return b; } int b; }; ����砥� int b; struct x { int f (); int b; }; inline x.f () { return b; } ����䨪��� overload (#8.2) ��� ����室����� �ᯮ�짮���� ��� ���⮢ �㭪樨, � �������� ��� ������砥� ���쪮 �㭪権 ����� �����. � �⮬ ��砥 ᠬ� ��� ���� ��४�뢠�騬 (�. #8.9). ����蠥��� �ਬ����� ������ ����樨 (adress-of) � ����� �㭪樨. ��� ��㬥�� १������饣� 㪠��⥫� �� �㭪�� - �� (...), �.�. ⨯ �������⥭ (#8.4). �� �ᯮ�짮����� ��� ������ �� �����⭮� ॠ����樨, �.�. ᯮᮡ ���樠����樨 㪠��⥫� ��� �맮�� ���� �㭪樨 �� ��।����. 8.5.3 �ந������ ������ ----------------------------------------------------------------- � �������樨 aggr �����䨪���: ��騩 opt typedef-name typedef-name ������ ��������� ࠭�� ���ᠭ�� �����, ����� ���뢠���� ������ ����ᮬ ��� �����, ����� �㤥� ���ᠭ. ������ ���뢠���� �ந������. �� 童� �������� ����� ����� ��뫠���� ��� �� 童�� �ந�������� �����, �� �� ��砥�, ����� ��� ���� �������� ����� ��८�।����� � �ந������� �����; � �⮬ ��砥 ���ᠭ�� typedef-name :: �����䨪��� (�. #7.1) ����� ���� �ᯮ�짮���� ��� ��뫪� �� ��� ���孥�� ���. � ����⢥ �ਬ�� ��ᬮ�ਬ ���騩: struct base { int a; int b; }; struct derived : public base { int b; int c; }; derived d; d.a = 1; d.base::b = 2; d.b = 3; d.c = 4; � ��� ���६ 童��� ��ᢠ������� ���祭�� d. �ந������ ������ ᠬ� ����� �ᯮ�짮������ ��� ������. 8.5.4 ����㠫�� �㭪樨 ----------------------------------------------------------------- � ������ ����� base ᮤ�ন� ����㠫��� �㭪�� vf (�. �. 8.1), � �ந������ ����� (derived) ⠪�� ᮤ�ন� ��� �㭪��, � �� �맮�� �㭪樨 vf ��� ��ꥪ� �ந�������� ����� �� ����砥� derived::vf. ���ਬ��: struct base { virtual void vf (); void f (); }; struct derived : public base { void vf (); void f (); }; derived d; base* bp = &d; bp->vf (); bp->f (); �� ���饭��� ��� ����� �ந�������� ��ꥪ� � ������ d ��뢠����, ᮮ⢥��⢥���, derived::vf � base::vf. �� ���� �������� �맮�� ����㠫쭮� �㭪樨 ������ �� ⨯� ⮣� ��ꥪ�, ��� ���ண� ��� ��뢠����, � � �६� ��� �������� �맮�� ������㠫쭮� �㭪樨 ������ ⮫쪮 �� ⨯� 㪠��⥫�, ��������饣� ����� ��ꥪ�. �� �⮬ ���ࠧ㬥������, �� ⨯ ��ꥪ⮢ ����� � ����㠫�묨 �㭪�ﬨ � ��ꥪ⮢ ����ᮢ, ������ �ந�����묨 �� ��� ����ᮢ, ����� ��।����� �� �६� �믮������. � �ந������ ����� ᮤ�ন� ���� � ⥬ �� ������, �� � ��� ����㠫쭮� �㭪樨, � � ������� ����� ��� ���� ������ ����� ���� � �� �� ⨯. ����㠫쭠� �㭪�� �� ����� ���� �������� (�. �. 8.5.9). �㭪�� f � �����, ��饬�� �ந������ �� �����, � ��� ᮤ�ন��� ����㠫쭠� �㭪�� f, ⠪�� ��⠥��� ����㠫쭮�. ����㠫쭠� �㭪�� ������ ���� ��।����� � ������� �����. ����㠫��� �㭪��, ����� 㦥 ��।����� � ������� �����, � �ந������� ����� ��।����� �� �㦭�. � �⮬ ��砥 �� ��� ���饭��� �ᯮ������ �㭪��, ��।������� � ������� �����. 8.5.5 ���������� ----------------------------------------------------------------- �㭪��-����, ��� ���ன ᮢ������ � ������ �� �����, ���뢠���� �������� (constructor). ��������� �� �����頥� ⨯ ���祭��. �� �ᯮ������ ��� ���ᠭ�� ���祭��, ������ ⨯, ����� ᮢ������ � ⨯�� �� �����. ��������� ����� �㦨�� ��� ᮧ����� ����� ��ꥪ⮢, ⨯ ������ ᮢ������ � ⨯�� ���������. �� �⮬ �ᯮ������ ���騩 ᨭ⠪��: typedef-��� (�����. ᯨ᮪-��㬥�⮢ ) ���ਬ��: complex zz = complex (1,2.3); cprint (complex (7.8,1.2)); ��� typedef-��� - �� ��� ��।������ ⨯�. �������� ⠪�� ��ࠧ�� ��ꥪ�� ����� �����������묨 (� ⮫쪮 ��������� �ᯮ�짮����� ��� ���樠����樨, ��� � ��砥 zz � �ਢ������� ��� �ਬ��). �� �⮬ �६� �� ����⢮����� ��࠭�祭� ⮩ �������� ����⢨�, � ���ன ��� ᮧ����. ��� �� ����� ��ᬠ�ਢ����� � ����⢥ ����⠭� ��� ⨯�. � ����� ����� ���������, � ��� ������� ��ꥪ� �� ��뢠���� ��। ����� �ᯮ�짮������ �⮣� ��ꥪ� (�. �. 8.6). ����ந⥫� ����� ���� ᮢ��饭��, �� �� ����� ���� ����㠫�� ��� ��������. � � ����� ������� ������ ����� � ������, � ��������� �������� ����� ��뢠���� ��। �������� �ந�������� �����. ���������� ��ꥪ⮢, ������ ���⠬� ����� (� ��� �������), �믮������� �� ��������� �������� ����� � ��। �������� ᮤ�ঠ饣� �� ��ꥪ�. ���᭥��� ⮣�, ��� ����� �������� ��㬥��� ��� ��������� �������� �����, ᮤ�ন��� � �. 8.6.2, � ���᭥��� �ᯮ�짮����� �������� ��� �ࠢ����� ������ ������� - � �. 17. 8.5.6 �८�ࠧ������ ----------------------------------------------------------------- ��������� � �����⢥��� ��㬥�⮬ ������ �८�ࠧ������ �⮣� ��㬥�� �� ������ ⨯� �⮣� ����� � ��㣮�. ����� �८�ࠧ������ �ᯮ������� ��� ��ࠧ�� �������⥫쭮 � ����� ��䬥��᪨� �८�ࠧ������. ����� ��ࠧ��, ��ᢠ������ ��ꥪ�� ����� � ���� �����⨬� � ⮬ ��砥, � ��ᢠ������� ���祭�� ᮤ�ন��� � �, ��� � � ����� ���������, ���ਭ����騩 � ����⢥ �����⢥����� ��㬥�� ��ᢠ������� ���祭��. ��������� ��ࠧ�� ���������� ����� �ᯮ�짮���� ��� �८�ࠧ������ ��㬥�⮢ �㭪樨 � ���樠����� (�. �. 7.1). �ਬ��: class X { ... X (int); }; f (X arg) { X a = 1; /* a = X (1) */ a = 2; /* a = X (2) */ f (3); /* f (X (3)) */ } ����� ���������� ����� �, ���ਭ����騥 ��ᢠ������ ⨯, ���� �� 㤠����, ���� ��㣨� �������� ��� �८�ࠧ������ ��ᢠ�������� ���祭�� � ⨯�, ����� ��� �� ���ਭ������� ��������ࠬ� ����� �, �� �믮������. ���ਬ��: class X { ... X (int); }; class X { ... Y (X); }; Y a = 1; /* �������⨬�: Y (X (1)) �� �믮��. */ 8.5.7 ��������� ----------------------------------------------------------------- �㭪��, ������ ���⮬ ����� cl, � ������ ~cl ���뢠���� ������� (destructor). �������� �� ����� �����頥���� ���祭�� � �ᯮ������ ��� 㭨�⮦���� ���祭�� ⨯� cl �����।�⢥��� ��। 㭨�⮦����� ᮤ�ঠ饣� �� ��ꥪ�. �������� ����� ���� ᮢ��饭��, ����㠫�� ��� ��������. �������� �������� ����� �믮������ �� �������� �����, ��饣��� �ந������ �� ������� �����. ��������� ��� ��ꥪ⮢-���⮢ �믮������� ��। ������� ⮣� ��ꥪ�, ���⠬� ���ண� ��� �����. ���ᠭ�� ⮣�, ��� ����� �ᯮ�짮���� ��������� ��� �ࠢ����� ������ �������, �ਢ������ � �. 17. 8.5.8 ���� � ��� ����� ���⮢ ----------------------------------------------------------------- �������� �����, ���ᠭ���� � ������� ���祢��� �� class, ����� �ਢ��묨 (private), � ���� �� ����� ����� �ᯮ�짮������ ⮫쪮 �㭪�ﬨ-���⠬� (�. �. 8.5.2) � ��������� (�. �. 8.5.10), � ⮫쪮 ��� �� ���� �� ���ᠭ��� public: ��⪠ (� �⮬ ��砥 ��� ����� �������묨). �������� ���� (public) ����� �ᯮ�짮������ � �� �㭪樨. ����� �������� (struct) �।�⠢��� ᮡ�� �����, �� ����� ���ண� ����� �������묨 (�. 8.5.11). � � ���ᠭ�� �ந�������� ����� ���祢�� �� public �।����� ����� �������� �����, � �������� ����� �������� ����� ����� ⠪�� �������묨 ��� �ந�������� �����. � ��⨢��� ��砥 ��� ����� �ਢ��묨. ��騩 ���� mem �ਢ�⭮�� �������� ����� base ⠪�� ����� ������ ��� �ந�������� �����, ��� ��������. ��� �⮣� �ᯮ������ ���ᠭ�� ����: tyfedef-��� . �����䨪���; ��� "typedef-���" ������砥� ������ �����, � "�����䨪���" - �� ��� ���� �������� �����. ����� ���ᠭ�� ������ ᮤ�ঠ���� � ��饩 ��� �ந�������� �����. ���ᬮ�ਬ �ਬ��: class base { int a; public: int b,c; int bf (); }; class derived : base { int d; public: base.c; int e; int df (); }; int ef (derived&); ������ ���� ef ����� �ᯮ�짮������ ⮫쪮 � ������� c, p � df. ������� ���⮬ �ந�������� �����, �㭪�� df ����� �ᯮ�짮���� ����� b, c, bf, d, e � df, �� �� ����� �ᯮ�짮���� ��� a. ������� ���⮬ �������� �����, �㭪�� bf ����� �ᯮ�짮���� ����� a, b, c � bf. 8.5.9 ������� ----------------------------------------------------------------- �������� (friend) ����� ���� �� ������ ��� ���⮬ �㭪��, ����� ����� �ᯮ�짮���� �ਢ��� ����� ���⮢ ������� �����. ������ �� �室�� � ������� ����⢨� ����� � �� ���饭�� � ���� �� 㯮�ॡ����� ᨭ⠪��, �� ��� �ᯮ������� ��� �����. � ���饬 �ਬ�� �����뢠���� ࠧ��稥 ����� ���⠬� � ���������. class private { int a; friend void friend_set (private*,int); public: void member_set (int); }; void friend_set (private* p,int i) { p->a=i; } void private.member_set (int i) { a = i; } private obj; friend_set (&obj,10); obj.member_set (10); ����� � ���ᠭ�� ������� ᮤ�ন��� ��뫪� �� ᮢ��饭��� ��� ��� ⮫쪮 �� ������, �㭪��, ��।��塞�� ⨯��� ��㬥�⮢, ⠪�� �⠭������ ��������. ����� ᤥ���� ⠪, �⮡� �� �㭪樨 ����� cl1 �⠫� ��������� ����� cl2. ��� �⮣� ����� �ᯮ�짮���� ���ᠭ��: class cl2 { friend cl1; . . . }; 8.5.10 �������-�㭪樨 ----------------------------------------------------------------- ��� ����設�⢠ ����� ����� �ᯮ�짮������ ᮢ��饭�� (overload) �� ��� ��� �ਭ����� ����� ����権 ��� ��ꥪ⠬� ���-������-�㭪樨: ������ op: op: + - * / % ^ & | ~ ! = < > += -= *= /= %= ^= &= |= << >> <<= >>= == != <= >= && || ++ -- () [] ������ ��� ����樨 �।�⠢���� ᮡ�� �맮� �㭪樨 � ����������. ������-�㭪�� ����� ���� �㭪樥�-���⮬ ��� ���ਭ����� �� �ࠩ��� ��� ���� ��㬥�� ����� (�. ⠪�� �. 7.16). 8.5.11 �������� ----------------------------------------------------------------- ������� �।�⠢��� ᮡ�� �����, �� ����� ���ண� ����� �������묨, � ����: struct s { ... }; �� ������⭮ class s { public: ... }; ������� ����� ᮤ�ঠ�� �㭪樨-�����, ������ ����ந⥫� � ����⥫�. 8.5.12 ���� ----------------------------------------------------------------- ��� (union) ����� ��ᬠ�ਢ���, ��� ��������, �� ��ꥪ�� ���ன ��稭����� � ᬥ饭�� 0, � ����� ����� ࠧ���, ������� ��� ⮣�, �⮡� ᮤ�ঠ�� �� �� �� ��ꥪ⮢. � � � �� ������ �६��� ����� �࠭����� �� ����� ������ ��ꥪ�-����. � ����⢥ ���⮢ �� ����� ⠪�� ᮤ�ঠ�� �㭪樨 (������ ���������� � ���������). 8.5.13 ���� ��⮢ ----------------------------------------------------------------- ���ᠭ�� ���� ����: �����. �����䨪���: ��ࠦ����-����⠭� ��।���� ����. ����� �⮣� ���� �⤥����� �� ����� ���� � ������� �������. ���� ����� 㯠������� ��設�� �ଠ� 楫�� �ᥫ � �易�� � �࠭�栬� �. ����, ��� �� ����頥��� � ����࠭�⢮, ����饥�� �� 楫���, �������� � ���饥 ��. ���� �� ����� ����� �����, �ॢ������ ��. �� �������� ��設�� ��ᢠ������ ���� �믮������ �ࠢ�-������, �� ��㣨� - ��-���ࠢ� (�. �. 2.6). ��� ���������� � ᮮ⢥��⢨� � ���譨�� �奬��� ������� �ᯮ�짮���� ������������ ����. � �ᮡ�� ��砥 ������������� ���� � ������ 0 ������ ��ࠢ������� ���饣� ���� �� �࠭��� ��. � ॠ������� �� �ॡ���� �����ন���� �����-���� ��㣨� ����, �� 楫�� (int). ����� ⮣�, ⮫쪮 楫� ���� ����� ������� ���������묨. �� �⨬ ��稭�� ४��������� ������ ���� ���������묨. � ���� ���ਬ���� ������ ����祭�� ���� &, ���⮬� 㪠��⥫� �� ���� ����������. ���� �� ����� ���� ���⠬� ��. 8.5.14 �������� ������ ----------------------------------------------------------------- ����� ������ ����� ����� ������ ��㣮� �����. � �⮬ ��砥 ������� ����⢨� ���� ����७���� ����� � ��� ��������� ���� ��࠭�稢����� �墠�뢠�騬 ��� ����ᠬ. �� �᪫�祭��� ������� ��࠭�祭�� ����७��� ����� ����᪠���� ����뢠�� ��� ������饣� ��� �����. ���ᠭ�� ������ ����� ����� ��㣮�� �� ����� �� �ࠢ��� ����㯠 � �������� ���⠬, � ⠪�� �� ���� �㭪権-���⮢ ����७���� ����� � ������ ����⢨� ���譥�� �����. int x; class enclose { int x; class inner { int y; f () { x=1 } ... }; g (inner*); ... }; int inner; enclose.g (inner* p) { ... } � ������ �ਬ�� x � f ��뫠���� �� x, ���ᠭ�� ��। ����ᮬ enclose (���譨� �����). ��� ��� y ���� �ਢ��� ���⮢ ����� inner (����७��� �����), � g �� ����� ��� �ᯮ�짮����. ����� ��ࠧ��, � ���ᠭ�� ��㬥�⮢ ��� g inner ��뫠���� �� ���譨� ⨯ inner, � �� �� int. 8.6 ���樠������ ----------------------------------------------------------------- � ������� ���ᠭ�� ����� �������� ��砫쭮� ���祭�� ���塞��� �����䨪���. ���樠������ ��⮨� �� ��ࠦ���� ��� ᯨ᪠ ���祭��, �����祭��� � ���, ��। ����� ��� ���� ࠢ���⢠ (=). ���樠������: = ��ࠦ���� = { ᯨ᮪-���樠����� } � { ᯨ᮪-���樠�����, } ( ᯨ᮪-��ࠦ���� ) ᯨ᮪-���樠����� ��ࠦ���� ᯨ᮪-���樠����� , ᯨ᮪-���樠����� { ᯨ᮪-���樠����� } �� ��ࠦ���� � ���樠������ ����� (static) ��� ���譥� (external) ��६����� ������ �।�⠢���� ᮡ�� ��ࠦ���� -����⠭��, ���ᠭ�� � �. 15, ��� ��ࠦ����, ����� ����� ᢥ�� � ����� ࠭�� ���ᠭ��� ��६�����, �������� � ᬥ饭���, ��������� ��ࠦ�����-����⠭⮩. ��⮬���᪨� (automatic) ��� ॣ���� (register) ��६���� ����� ���樠������� �ந�����묨 ��ࠦ���ﬨ, ������ ����⠭��, ࠭�� ���ᠭ�� ��६���� � �㭪樨. ����᪨� ��� ���譨� ��६����, ����� �� �뫨 ���樠�������, � ��砫� ࠡ��� ᮤ�ঠ� "����". ����� ���樠��������� ᪠��� (㪠��⥫�, ��ꥪ� ��� ��䬥��᪨� ⨯), � ���樠������ ��⮨� �� �����筮�� ��ࠦ����, �������� �����祭���� � ���. ��砫쭮� ���祭�� ��ꥪ� ������ �� �⮣� ��ࠦ����. �� �⮬ �믮������� ⠪�� �� �८�ࠧ������, ��� �� ��ᢠ������. ����⨬, �� ����� () �� ���� ���樠�����, � "� a();" �� ����� �㦨�� ���ᠭ��� ��ꥪ� ����� �, � �।�⠢��� ᮡ�� ���ᠭ�� �㭪樨 ��� ��㬥�⮢, �������饩 ���祭�� �. 8.6.1 ���᪨ ���樠����� ----------------------------------------------------------------- ����� ����뢠���� ��६����� ���� ��㯯���� (� ���� ����ᮬ ��� ���ᨢ��), � ���樠������ ����� ������ �� ᯨ᪠ ���樠�����, �����祭���� � 䨣��� ���. �� �⮬ ���樠������� �㦠� ��� ���樠����樨 ���⮢ ��㯯�. ��� ����������� � ���浪� �����⠭�� ������ ��� � ���浪� ������� ���⮢ � �⤥������ ��� �� ��㣠 ����⮩. � ���ᨢ ᮤ�ন� �����㯯�, �� �ࠢ��� ४��ᨢ�� �ਬ����� � ���⠬ �⮩ �����㯯�. � ���樠����� � ᯨ᪥ �����, 祬 ���⮢ ��㯯�, � ��㯯� ���������� ��ﬨ. ������ ����� �ᯮ�짮������ ���騬 ��ࠧ��. � ���樠������ ��稭����� � ����� 䨣�୮� ���, � ���騩 ����� ᯨ᮪ ���樠����� (����� ���ண� �⤥���� ��� �� ��㣠 ����⮩) ���樠������� ����� ��㯯�. � � ���樠����� �ॢ�蠥� � ���⮢ ��㯯�, � �� ���� �訡���. �, ������, ���樠������ �� ��稭����� � ����� ��㣫�� ���, � ���뢠���� ⮫쪮 � � ���⮢ ᯨ᪠, ��� ᮮ⢥������ ��� ���⮢ ��㯯�, ����� ���ன ���� ������ ��㯯�. ���ਬ��: int x[] = { 1, 3, 5 }; ����뢠�� � ���樠������� x, ��� �������� ���ᨢ � �६� ���⠬� (⠪ ��� ࠧ��� ���ᨢ� �� 㪠��� � ������� �� ���樠������). �ਬ��: float y[4][3] = { { 1, 3, 5 }, { 2, 4, 6 }, { 3, 5, 7 } }; �।�⠢��� ᮡ�� ���樠������, ��������� �ᯮ������� 䨣��� ���. ���祭�� 1, 3 � 5 ���樠�������� ����� ��ப� ���ᨢ� y[0], � ������ y[0][2]. �������筮, ���騥 ��� ��ப� ���樠�������� y[1] � y[2]. ���樠������ �����稢����� ࠭��, 祬 �㦭�, ���⮬� y[3] �㤥� ���樠������ ���祭��� 0. ��� �� ᠬ� १���� ����� ������ ���騬 ��ࠧ��: float y[4][3] = { 1, 3, 5, 2, 4, 6, 3, 5, 7 }; ���樠������ ���ᨢ� y ��稭����� � ����� 䨣�୮� ���, �� ��� y[0] ⠪�� ���樠������ �� �ᯮ������, ���⮬� ���뢠���� �� ���� �� ᯨ᪠. �������筮, ���騥 �� ���� ������� ᮮ⢥��⢥��� ��� y[1] � y[2]. ��ࠦ����: float y[4][3] = { { 1 }, { 2 }, { 3 }, { 4 } }; ���樠������� ���� �⮫��� ���ᨢ� y (�� ��ᬠ�ਢ�����, ��� ��㬥�� ���ᨢ), � ��⠫�� ����� ���樠���������� ���祭��� 0. 8.6.2 ������ ��ꥪ⮢ ----------------------------------------------------------------- ��ꥪ�� � �ਢ��묨 ���⠬�, � ⠪�� �� (union) ��ꥪ⮢ ����� ���樠������� � ������� ���ᠭ���� ��� ���⮣� ��ᢠ������ ���祭�� ��� ���⠬ (��� ���ᠭ� ���). ����� ��ꥪ⮢ � �������� ������ ���樠���������. � ��������� ����� �� �ॡ�� ��㬥�⮢, � ��� ��������� �ᯮ������ ��� ��ꥪ⮢, � ������ ��� �� ���樠����樨. ��㬥��� ��������� ⠪�� ����� ���� �।�⠢����, ��� ᯨ᮪, �����祭�� � ���. ����� ��⮤ �㦭� �ᯮ�짮���� ��� ᮧ����� ��ꥪ⮢ � ������ ������ �����. ���ਬ��: struct complex { float re; float im; complex (float r,float i) { re=r; im=i; } complex (float r) { re=r; im=0; } }; complex zz (1,2.3); complex* zp = new complex (1,2.3); ���樠������ ����� ⠪�� �믮����� � ������� ��� ��ᢠ������. �� �⮬ �믮������� ᮮ⢥�����騥 �८�ࠧ������. ���ਬ��: complex zz1 = complex (1,2.3); complex zz2 = complex (123); complex zz3 = 123; complex zz4 = zz3; � � ��������� ����室��� ��뫪� �� ��ꥪ� ��� ᮡ�⢥����� �����, � �� �㤥� ��뢠���� �� ���樠����樨 ��ꥪ� ��㣨� ��ꥪ⮬ �⮣� �����, � �� � ⮬ ��砥, ����� ��ꥪ� ���樠��������� ��������. ��ꥪ� ����� � ��������ࠬ� ����� ���� ���⮬ ��㯯� ⮫쪮 � ⮬ ��砥, ����� �� ���� �� ����� ���������, ���� ����� ���� �� ��� �������� �� �ॡ�� ��㬥�⮢. � ������ ��砥 ��� ��������� ��뢠���� �� ᮧ����� ��㯯. � ������� ��㯯� �⭮���� � ������ � �������, � ��� �������� ��뢠���� �� 㭨�⮦���� ��㯯�. 8.6.3 ��뫪� ----------------------------------------------------------------- ����� ��६����� ����뢠���� � ������� T (� ���� "��뫪� �� ⨯ T"), � �� ����� ���樠������� ���� 㪠��⥫�� ⨯� T, ���� ��ꥪ⮬ ⨯� T. � ������ ��砥 ��� �ᯮ������ ������ ����祭�� ����. ���ਬ��: int i; int& r1 = i; int& r2 = &i; � r1, � r2 ���� 㪠�뢠�� �� i. ���樠������ ��뫪� ����������� ᮢᥬ �� ⠪, ��� ��ᢠ������ �� ���祭��. ��� ����뢠���� � �. 7.1, �� �ᯮ�짮����� ��뫪� ��� ࠧ묥���뢠����. ���ਬ��: r1 = r2; ����砥� �������� 楫��� ���祭��, �� ��� 㪠�뢠�� r2, � 楫�� ���祭��, �� ��� 㪠�뢠�� r1. ��뫪� ������ ���� ���樠�������. ��-�� ����� ࠧ묥������� ���祭�� ��뫪� �� ���樠����樨 ���������� �� �����. ����� ��ࠧ��, ��뫪� ����� ��ᬠ�ਢ���, ��� ��� ��ꥪ�. ��� ⮣�, �⮡� ������� ��뫪� pp ��� ������祭�� ⮣� �� ��ꥪ�, �� ����� ��뫠���� rr, ����� ������� pp=rr. �� �㤥� �����������, ��� pp=*rr. � ���樠������ ��뫪� �� ⨯ T �� ���� ���祭���, � ��ꥪ� ⨯� T �㤥� ᮧ��� � ���樠������ ���樠����� � �ᯮ�짮������ �ࠢ�� ���樠����樨. ���祭��� ��뫪� �� �⮬ �⠭������ ���� ��ꥪ�. �६� ����⢮����� ᮧ������� ⠪�� ��ࠧ�� ��ꥪ� ᮮ⢥����� ⮩ ������ ����⢨�, � ���ன �� ᮧ���. ���ਬ��: double rr = 1; ���� �����⨬� � rr �㤥� 㪠�뢠�� �� double, � ��� ᮤ�ন��� ���祭�� 1.0. ��뫪� �ᮡ���� ������� �ᯮ�짮���� � ����⢥ ⨯�� ��㬥��. 8.6.4 �������� ���ᨢ� ----------------------------------------------------------------- ����᪠���� ���樠������� ᨬ����� ���ᨢ (���ᨢ ⨯� char) ��ப��. � �⮬ ��砥 ������⥫�� ����� ���ᨢ� ���樠���������� ᨬ������ ��ப�. ���ਬ��: char msg[] = "Syntax error on line %dn"; �����뢠�� ᨬ����� ���ᨢ, ����� ���ண� ���樠���������� ��ப��. 8.7 ����� ⨯�� ----------------------------------------------------------------- ������ ����⥫쭮 ���� ⨯� ������ ��� (��� ������� ��� �८�ࠧ������ ⨯� ��� ��� �ᯮ�짮����� � ����⢥ ��㬥�⮢ �㭪権 sizeof � new). �� ����� �믮����� � ������� ����� ⨯�, ��� ����, �� ������, ���ᠭ��� ��ꥪ� ������� ⨯�, � ��� ��� ��ꥪ� ���饭�. ���-⨯�: ᯥ�䨪���-⨯� ����ࠪ��-����⥫� ����ࠪ��-����⥫�: ���⮩ ����ࠪ��-����⥫� * ����ࠪ��-����⥫� ( ᯨ᮪-����ࠪ���-����⥫�� ) ����ࠪ��-������� [ �����. ��ࠦ����-����⠭� ] ( ����ࠪ��-����⥫� ) ����� ࠧ������ "����ࠪ��-����⥫�" ⠪�� ��ࠧ��, �⮡� �� �ᯮ�짮����� � ���ᠭ�� � ����⢥ ����⥫�. ���������� ⨯ �㤥� � �⮬ ��砥 �।�⠢���� ᮡ�� � �� ᠬ��, �� ⨯ ��������� �����䨪���. ���ਬ��: int int * int *[3] int *() int (*)() � �⮬ �ਬ�� ��������뢠���� ᮮ⢥��⢥��� ⨯� "楫��" (integer), "㪠��⥫� �� 楫��", "㪠��⥫� �� ���ᨢ �� ��� 楫��", "�㭪��, ��������� 㪠��⥫� �� 楫��" � "㪠��⥫� �㭪樨, �������饩 楫��". ���⮥-���-⨯� - �� ���, ����饥 �� ������ �����䨪��� ��� ��. ���⮥-���-⨯�: typedef-��� char short int long unsigned float double �� ����� �ᯮ������� � ����⢥ ����ୠ⨢���� ᨭ⠪�� ��� �८�ࠧ������ ⨯��. ���ਬ��: (double) a ����� �������, ���: double (a) 8.8 ��।������ ⨯� (typedef) ----------------------------------------------------------------- ���ᠭ��, ᮤ�ঠ騥 ����⥫�-ᯥ�䨪��� "��।������- ⨯�" (typedef), ������ �����䨪����, ����� ����� ��⥬ �ᯮ�짮���� ⠪�� ��ࠧ��, ��� � �� ��� �।�⠢� ᮡ�� ���祢� ��, �㦠騥 ��� ������������ �᭮����� ��� �ந�������� ⨯��. typedef-���: �����䨪��� ����� ��ࠧ��, � ������ ����⢨� ���ᠭ��, ������饣� � ᥡ� ��।������ ⨯�, ����� �����䨪���, ��騩�� ����� ������-���� ���ᠭ��, �⠭������ ᨭ⠪��᪨ �������� ���祢��� �� ����� ⨯�, �ᯮ����饬��� ��� ������������ ⨯�, �易����� � �����䨪�� ᯮᮡ��, ���ᠭ�� � �. 8.4. ���ਬ��, �� ��।������: typedef int MILES, *KLICKSP; struct complex { double re, im; }; �������樨 MILES distance; extern KLICKSP metricp; complex z, *zp; �।�⠢���� ᮡ�� �����⨬� ���ᠭ��: distance ����� ⨯ int, � metricp - �� "㪠��⥫� �� 楫�� (int)". ��।������ typedef �� ������뢠�� ��࠭�祭�� �� ���� ⨯�, � ��ᠥ��� ⮫쪮 ᨭ������ ⨯��, ����� ����� ��।������� ⠪�� ��㣨� ᯮᮡ��. ��� � �।��饬 �ਬ�� ��⠥���, �� distance ����� � �筮�� �� �� ᠬ� ⨯, �� � �� ��㣮� ��ꥪ� ⨯� int. � ���ᠭ�� �����, ������, ���� ⨯ �� ��������. ���ਬ��: struct X { int a; }; struct Y { int a; }; X a1; Y a2; int a3; � ������ �ਬ�� ����뢠���� �� ��६���� ��� ࠧ����� ⨯��. ���ᠭ�� ����: ���ᠭ��-�����: �����䨪��� ��㯯� ; �����䨪��� ������� ; ��।����, �� �����䨪��� �।�⠢��� ᮡ�� ��� �����ண� (�������� �� ����।��������) �������� �����. ����� ���ᠭ�� ��������� ������� ���ᠭ�� ����ᮢ, ��뫠����� ��� �� ��㣠. ���ਬ��: class vector; class matrix { ... friend matrix operator* (matrix&,vector&); }; class vector { ... friend matrix operator* (matrix&,vector&); }; 8.9 �����饭�� ����� �㭪権 ----------------------------------------------------------------- ����� ��� ������ ����� �������� ���쪮 (ࠧ�����) ���ᠭ�� �㭪樨, � �������, �� �� ��� ���� ᮢ��饭��. �� �ᯮ�짮����� ⠪��� ����� �ࠢ��쭠� �㭪�� �롨ࠥ��� ��⥬ �ࠢ����� ⨯�� ����⢨⥫��� ��㬥�⮢ � ⨯��� ��㬥�⮢ � ���ᠭ�� �㭪樨. � ᮢ��饭���� ����� ����� �ਬ����� ������ ����祭�� ���� &. �� ��ᠥ��� ������ ��䬥��᪨� �८�ࠧ������, ��।������� � �. 6.6, � �८�ࠧ������ char->short->int, int->double, int->long � float->double �� �맮�� ᮢ��饭��� �㭪樨 �믮�������. ��� ᮢ��饭�� ����� �㭪樨, �� ��饩�� ���⮬ ������� �����, ��� ���ᠭ�� �㭪樨 ������ �।��⢮���� ������� overload (�. �. 8.2). ���ਬ��: overload abs; int abs (int); double abs (double); �� ���饭�� � ᮢ��饭���� ����� ᯨ᮪ �㭪権 ��ᬠ�ਢ����� � ⮬ ���浪�, � ��� ��� ��뢠����. ���ਬ��, abs(12) ��뢠�� abs(int) � abs(12) �㤥� ��뢠�� abs(double). � �� ������� ������ � ���⭮� ���浪�, � �� ����� ���饭��� ��뢠���� �� abs(double). � � ������� ���ᠭ���� ��⮤� �� ���饭�� � ᮢ��饭��� �㭪樨 �㭪�� ���� �� 㤠����, � � ��� �㭪樨 �ॡ����� ��㬥��� ⨯� �����, � ������� 㭨���쭮� ������⢮ �८�ࠧ������, � ������� ���ண� ⠪�� �맮� ����� ���� �����⨬� (� �� ��� �ᯮ������). ���ਬ��: class X { ... X (int); }; class Y { ... Y (int); }; class Z { ... Z (char*); }; overload int f (X), f (Y); overload int g (X), g (Y); f (1); /* �������⨬�: ��������� ���. X((1)) or f(Y(1)) */ g (1); /* g(X(1)) */ g ("asdf"); /* g(Z("asdf")) */ �� ����� ������-�㭪樨 ��⮬���᪨ ᮢ�������. 8.10 ���ᠭ�� ������� ----------------------------------------------------------------- ������� �।�⠢���� ᮡ�� ⨯ int � ���������묨 ����⠭⠬�. enum-ᯥ�䨪���: �����. enum-�����䨪��� {ᯨ᮪-������� } ᯨ᮪-�������: ������-���� ᯨ᮪-������� , ������ ���� ������-���� �����䨪��� �����䨪��� = ��ࠦ����-����⠭� �����䨪���� � ᯨ᪥-������� ����뢠����, ��� ����⠭��, � ����� ��������� ⠬, ��� ���室��� ����⠭��. � ������ ���� � ������ "=" ���������, � ���祭�� ᮮ⢥������ ����⠭� ��稭����� � 0 � 㢥��稢����� �� 1 �� ���뢠��� ���ᠭ�� ��-���ࠢ�. ������ ���� � ������ "=" ��ᢠ����� ᮮ⢥�����饬� �����䨪���� 㪠������ ���祭��. �����騥 �����䨪���� �த�������� � �������� ���祭��. ����� ������� ���⮢ ������ �⫨����� �� ���� ������ ��६�����. ����� ������� ���⮢ � ࠧ���묨 ����⠭⠬� ⠪�� ������ ���� ࠧ����. ���祭�� ������� ���⮢ ����� �� ࠧ�������. ���� �����䨪��� � enum-ᯥ�䨪��� ��������� �������筠 �����䨪����, �ᯮ����饬��� � ����� ����� - �� �㦨� ��� ������������ �⤥�쭮�� �������� ����. ���ਬ��: enum color { chartreuse, burgundy, claret=20, winedark }; ... color *cp, col; ... col = claret; cp = &col; ... if (*cp == burgundy) ... ��ᢠ����� color ����� ⨯�, ����뢠�饣� ࠧ���� 梥�, � ��⥬ ����� cp 㪠��⥫�� �� ��ꥪ� �⮣� ⨯�, � col - ��ꥪ⮬ �⮣� ⨯�. �������� ���祭�� ������� �� ������⢠ { 0, 1, 20, 21 }. 8.11 ���ᠭ��� asm ----------------------------------------------------------------- ���ᠭ�� asm ����� ���: asm (��ப�); ���祭�� ���ᠭ�� asm ����।�����. ���筮 ��� �ᯮ������ ��� ��।�� ���ଠ樨 �१ ��������� ��ᥬ�����. 9. ��������� ----------------------------------------------------------------- ������� �믮������� � ⮬ ���浪�, � ��� ��� ����, �� �᪫�祭��� �� ��砥�, ����� ��� ���冷� �� ��������� � ��ࠧ��. 9.1 ������-��ࠦ���� ----------------------------------------------------------------- ����設�⢮ ����� ����� �����ࠬ�-��ࠦ���ﬨ � ����� ���: ��ࠦ���� ; ���筮 �������-��ࠦ���� �।�⠢���� ᮡ�� ��ᢠ������ ��� �맮�� �㭪樨. 9.2 ���⠢��� ������ (���� �����) ----------------------------------------------------------------- ����� ⠬, ��� ����砥��� ���� ������, ����� �ᯮ�짮������ ���쪮, �।�ᬮ�७ ��⠢��� ������ (����� ���뢠���� ⠪�� ������ �����): ��⠢���-������: { �����. ᯨ᮪-������� �����. ᯨ᮪-����� } ᯨ᮪-�������: ������� ������� ᯨ᮪-������� ᯨ᮪-�����: ������ ������ ᯨ᮪-����� � �����-���� �� �����䨪�� � ᯨ᪥ ������� �� ���ᠭ ࠭��, � ���譥� ������� �� �६� �믮������ ������� ����� �⬥�����, �� 祣� ᭮�� ����������� � ����⢨�. ����� ࠧ �� �室� � ��砫� ����� �믮������ ���樠������ ��� ॣ����� � ��⮬���᪨� ��६�����. ����� �믮����� ��।��� � ����: � �⮬ ��砥 ���樠������ �� �믮������. ���樠������ ��६����� � ����ᮬ ����� static (�. �. 4.2) �믮������ ⮫쪮 ���� ࠧ �� �믮������ �ணࠬ��. 9.3 ���� ������ ----------------------------------------------------------------- ���� ������ ����� ���: if ( ��ࠦ���� ) ������ if ( ��ࠦ���� ) ������ else ������ � ����� ����� �믮������ ������ ��ࠦ���� � � ��� �� ࠢ�� ���, � �믮������ ���� ���������. �� �� ��砥 ��ன ��������� �믮������, � ��ࠦ���� ࠢ�� 0. ��� ���筮 ����������� ���祢��� �� else ࠧ�蠥��� ��⥬ ��뢠��� else � ������ �����㦥��� �� �� else ����� if. 9.4 ������ while ----------------------------------------------------------------- ������ while ����� ���: while ( ��ࠦ���� ) ������ ��������� ����୮ �믮������ �� �� ���, ���� ��ࠦ���� ����� ���㫥��� ���祭��. ��ઠ �믮������ ��। ����� �믮������� ������. 9.5 ������ do ----------------------------------------------------------------- ������ do ����� ���: do ������ while (��ࠦ����); ��������� �믮������ ����୮, ���� ���祭�� ��ࠦ���� �� �⠭�� ࠢ�� ���. ��ઠ �믮������ �� ������� �믮������ ������. 9.6 ������ for ----------------------------------------------------------------- ������ for ����� ���: for ( �����. ��ࠦ����-1 ; �����. ��ࠦ����-2; �����. ��ࠦ����-3 ) ������ ��� ������ ������⥭ ���饬�: ��ࠦ����-1; while (��ࠦ����-2) { ������ ��ࠦ����-3; } ����� ��ࠧ�� ��ࢮ� ��ࠦ���� ������ ���樠������ 横��, �� ��।���� ����, ����� �믮������ ��। ������ ���樥� (⠪�� ��ࠧ�� ��室 �� 横�� �ந�室��, ����� ��ࠦ���� �⠭������ ࠢ�� 0), ���� ��ࠦ���� ��� ������ ���饭��, ��� �믮������ �� ������ ���樨. �� �� 㪠������ ��ࠦ���� (��� �� ��) ����� ���� ���饭�. � ���饭� "��ࠦ����-2", � ���ࠧ㬥������ �ᯮ�짮����� ������ while, ������⭮�� while(1). �� �ய�᪥ ��㣨� ��ࠦ���� ���� �� �믮������� ���ᠭ�� ��� ����⢨�. 9.7 ������ switch ----------------------------------------------------------------- ������ switch �ਢ���� � ����ᨬ��� �� ���祭�� ��ࠦ���� � ��।�� �ࠢ����� �� ���� �� ���쪨� �����. �� ����� ���: switch ( ��ࠦ���� ) ������ ��ࠦ���� ������ ����� 楫� ⨯ ��� ⨯ 㪠��⥫� (pointer). �� ������ ����� ������� ������ ����� ���� ����祭 ����� ��� ����� ���祢� ��� case. ���ਬ��: case ��ࠦ����-����⠭�: ��� ��ࠦ����-����⠭� ������ ����� �� �� ⨯, �� � ��ࠦ���� ������ switch (�� �⮬ �믮������� ����� ��䬥��᪨� �८�ࠧ������). ��� 㪠�뢠��� �� ���祢� ��� case ����⠭�� �� ����� � ����� ������ switch ����� ��������� ���祭��. ��ࠦ����-����⠭�� ��।������� ⠪, ��� 㪠�뢠���� � �. 15. ����� ������⢮���� ⠪�� �� ����� ������ ��䨪᭮�� ������ ����: default : ����� ������ switch �믮������, ��� ��ࠦ���� �������� � �ࠢ�������� � ������ ����⠭⮩, 㪠������ �� ���祢� ��� case. � ���祭�� ����� �� ⠪�� ����⠭� ᮢ������ � ���祭��� ��ࠦ����, � �ࠢ����� ��।����� �� ������, ���騩 �� �⨬ ���祢� ��� case. � �� ���� �� ����� �� ���祢� ��� case ����⠭� �� ᮢ������ � ���祭��� ��ࠦ���� � ������� ��䨪� default, � �ࠢ����� ��।����� �� ��䨪�� ������. � �� ��䨪�� ������ ���������, � �� ���� �� ����� � ������ switch �� �믮������. ��䨪�� case � default ᠬ� �� ᥡ� �� �ਢ���� � ��।�� �ࠢ����� � �믮������ ����� �ந�室�� ������ᨬ� �� ������ ⠪�� ��䨪ᮢ. � ⮬, ��� ����� ��� �� ������ switch, �������� � �. 9.8. ���筮 ������, ᮤ�ঠ騩�� � ������ switch, ���� ��⠢��. � ��������� ⠪��� ������ ����� ᮤ�ঠ��� �������, ������ ���樠������ ��⮬���᪨� ��� ॣ����� ��६����� �� �������. 9.8 ������ break ----------------------------------------------------------------- ������ break ; �ਢ���� � �४�饭�� �믮������ ����७���� ������ � ������� while, do, for ��� switch. ��ࠢ����� �� �⮬ ��।����� �������, ����� ��� �� �����, �믮������ ���ண� �४�饭�. 9.9 ������ continue ----------------------------------------------------------------- ������ continue ; �ਢ���� � �த������� �믮������ �� �����, ����� ᮤ�ঠ��� � ������� while, do ��� for. �� �믮������ �த�������� �� ���� 横��. � ������� ����� �筮, � � ������ �� �����: while (...) do for (...) { { { ... ... ... contin:; contin:; contin:; } } } while (...); ������ continue ������⥭ ���室� �� contin. (�� contin: ��� ���⮩ ������: �. �. 9.13.) 9.10 ������ return ----------------------------------------------------------------- �㭪�� �⮣� ������ ��⮨� � ������ �ࠢ����� � ��뢠���� �ணࠬ�� � ������� ������ return, ����� ����� ���� �� ����� ��: return ; return ��ࠦ���� ; ��ࢠ� �ଠ ����� �ᯮ�짮������ ⮫쪮 � �� �㭪���, ����� �� �������� ���祭��, � ���� �㭪���, ��������� ⨯ void (����). ���� �ଠ ����� �ᯮ�짮������ ⮫쪮 � �� �㭪���, ����� �������� ���祭��. �� �⮬ ��뢠�饩 �ணࠬ�� ��।����� ���祭�� ��ࠦ����. � �� �ॡ����, ��ࠦ���� ����� ���� �८�ࠧ����� �� ��ᢠ������ ��� �� ⨯� �㭪樨, � ������ ��� �室��. ���⮩ ���室 �� �������饩 ��� �㭪樨 ������⥭ ������� �ࠢ����� ��� �����頥���� ���祭��. 9.11 ������ goto ----------------------------------------------------------------- � ������� ������: goto �����䨪��� ; ����� �믮������� �������� ��।�� �ࠢ�����. �� �⮬ �����䨪��� ������ �।�⠢���� ᮡ�� ����, �ᯮ�������� � ������ �㭪樨. 9.12 ����祭�� ������ ----------------------------------------------------------------- ��। ��� ����� ����� ������ ��⪠ ����: �����䨪��� : ����� �ᯮ������ ��� ������� �����䨪��� ��⪮�. ��⪠ �ᯮ������ ⮫쪮 ��� 㪠����� �� �����, �� ����� �㦭� ��।��� �ࠢ����� �� ������� goto. �������� ����⢨� ��⪨ ���� ⥪��� �㭪�� (�� �᪫�祭��� �� ����७��� ������, � ������ ����� �����䨪��� ��८�।������). ��. �. 4.1. 9.13 ���⮩ ������ ----------------------------------------------------------------- ���⮩ ������ ����� ���: ; ���⮩ ������ ������� � ⮬ ��砥, ����� �㦭� �������� ���� �����।�⢥�� ��। } ��⠢���� ������ ��� ��� ������� ���⮣� ⥫� 横�� � ������ 横�� (���ਬ��, � ������ while). 9.14 ������ delete ----------------------------------------------------------------- ������ delete ����� ���: delete ��ࠦ���� ; ������� ��ࠦ���� ������ ���� 㪠��⥫��. ��ꥪ�, �� ����� ��뫠���� ��� 㪠��⥫�, 㤠�����. ����� ��ࠧ��, ����� ��࠭����, �� �� ������ delete ���祭�� ��ꥪ� �㤥� ��।����� (�. �. 17). ��䥪� �ਬ������ ������ delete � 㪠��⥫�, �� ��ࠧ�������� � ������� ������ new, ����।���� (�. �. 7.1). ������ 㤠����� 㪠��⥫� � �㫥�� ���祭��� �� �ਢ���� �� � ����� ������� ����⢨�. 9.15 ������ asm ----------------------------------------------------------------- ������ asm ����� ���: asm ( ��ப� ) ; ���祭�� ������ asm ����।�����. ���筮 �� �ᯮ������ ��� ��।�� ���ଠ樨 �१ ��������� ��ᥬ�����. 10. ������� ����������� ----------------------------------------------------------------- �ணࠬ�� �� �몥 �� ����� �� ������⥫쭮�� ���譨� (external) ��।������. ���譨� ��।������ ������ �����䨪���, ��� ����騩 ����� ����� static � ������ ��� ⨯. ����䨪��� ⨯� (�. �. 8.2) ����� ���� ⠪�� �����. � �⮬ ��砥 �� 㬮�砭�� �����砥��� ⨯ int. ������� ����⢨� ���譨� ��।������ ����ࠥ��� �� ���� 䠩��, � ��� ��� ����뢠����, ⠪ ��, ��� ������� ����⢨� ���ᠭ�� ����ࠥ��� �� ���� �����. ���⠪�� � ���譨� ��।������ ⠪�� ��, ��� � � ���ᠭ��, �� �᪫�祭�� ⮣�, �� ��� �㭪樨 ����� ᮤ�ঠ���� ⮫쪮 �� ������ ��� � ����� ���ᠭ�� �����. 10.1 ��।������ �㭪権 ----------------------------------------------------------------- ��।������ �㭪樨 ����� ���: ��।������ �㭪樨: ����⥫�-ᯥ�䨪���� �����. ����⥫�-�㭪樨 �����. ���樠������-��������-����� ⥫�-�㭪樨 � "����⥫��-ᯥ�䨪����" ����᪠���� �ᯮ�짮���� ⮫쪮 ᯥ�䨪���� ⨯� extern, static, overload, inline � virtual. ����⥫� �㭪樨 �������祭 ���ᠭ�� �㭪樨, �������饩 ���祭��, �� �� ����砥� � ᥡ� ����� �ଠ���� ��ࠬ�� ��।��塞�� �㭪樨. ����⥫� �㭪樨 ����� ���: ����⥫�-�㭪樨 : ����⥫� ( ᯨ᮪-���ᠭ��-��㬥�⮢ ) ��ଠ "ᯨ᪠-���ᠭ��-��㬥�⮢" ��।����� � �. 8.4. ����� ���������� ⮫쪮 ����� �����. ���⢥�����騩 䠪��᪨� ��ࠬ��� �㤥� ���������, � �� ��������, � ॣ���� � ��砫� �㭪樨. � � ����⢥ ���樠������ ��㬥�� �������� ����⠭�, � �� ���祭�� �ᯮ������ � ����⢥ ���祭��, ��ᢠ�������� ��㬥��� �� 㬮�砭��. ���� �㭪樨 ����� ���: ⥫�-�㭪樨 : ��⠢���-������ ����� �ਬ� ������� ��।������ �㭪樨 ����� �㦨��: int max (int a,int b,int c) { int m = (a > b) ? a : b; return (m > c) ? m : c; } ����� int - �� ᯥ�䨪���-⨯�, max (int a,int b,int c) - ����⥫�-�㭪樨, � { ... } - ����, � ��� �������� ��� �����. ����� � ��ࠦ���� ᮤ�ন��� ��� ���ᨢ� (� ��⭮��, � ����⢥ 䠪���� ��ࠬ���), � ����� ���ࠧ㬥������ 㪠��⥫� �� ���� ���� ���ᨢ�. ���ᠭ�� �ଠ���� ��ࠬ�� ���� "array of ..." (���ᨢ ...) ��ᬠ�ਢ�����, ��� "㪠��⥫� �� ...". ���樠������ �������� ����� ����� ���: ���樠������-��������-�����: : ( �����. ᯨ᮪-��㬥�⮢ ) �� �ᯮ������ ��� ������� ��㬥�⮢ ��������� �������� ����� � ��������� �ந�������� �����. ���ਬ��: struct base { base (int); ... }; struct derived : base { derived (int); ... }; derived.derived (int a) : (a+1) { ... } derived d (10); ��������� �������� ����� ��뢠���� ��� ��ꥪ� d � ��㬥�⮬ 11. 10.2 ��।������ ���譨� ������ ----------------------------------------------------------------- ��।������ ���譨� ������ ����� ���: ��।������-������: ���ᠭ�� ����� ����� ����� ����᪨� ����� ����� (static). � ��� ������ � ⮣� �� ����� ������� ���쪮 ��।������ ���譨� ������, � �� ��।������ ������ ���� ��ண� ᮣ��ᮢ��� �� ⨯� � ������ �����, � ���樠������� (� ��� �������) ������ ����� ���� � � �� ���祭��. 11. ������� ������� �������� ----------------------------------------------------------------- ��. �. 4.1. 12. ������� ���������� ������������ ----------------------------------------------------------------- � ��������� �몥 �� ������� �९�����, ����� ����� �믮����� ���ய���⠭����, ����� ��������� � ����祭�� 㪠������ 䠩���. ��� ������� ��४⨢ �९������ �ᯮ������� ��ப�, ��稭��騥�� � #. ���⠪�� ��� ��ப �� ������ �� ��⠫쭮�� �몠. ��� ����� ᮤ�ঠ���� � �� ���� �ணࠬ�� � �������� (������ᨬ� �� ������ ����⢨�) �� ���� ��室���� 䠩�� �ணࠬ��. ����⨬, �� � ����設�⢥ ��砥� ����� #define ����� �ᯮ�짮���� ��।������ const � inline. 12.1 ������ ᨬ����� ----------------------------------------------------------------- ��ப� �ࠢ����� �������� ����� ���: #define �����䨪��� ��ப�-ᨬ����� �� �⮬ �९����� ������� �����騥 �宦����� �����䨪��� ���饩 �� ��� ��ப�� ᨬ�����. ��窠 � ����⮩ � ���� ��ப� ᨬ����� ���� ����� �⮩ ��ப�. ��ப� ����: #define �����䨪��� (�����䨪��� , ..., �����䨪���) ��ப�-ᨬ����� � ���ன ���������� ���� ����� ���� �����䨪�� � "(", �।�⠢��� ᮡ�� ���ம�।������ � ��㬥�⠬�. �����騥 �宦����� ��ࢮ�� �����䨪���, �� ����� ��� "(", ������⥫쭮��� ᨬ�����, ࠧ�������� �����묨 � ")", ���������� ᮤ�ঠ饩�� � ��।������ ��ப�� ᨬ�����. ������ �宦����� �����䨪���, 㪠������� � ᯨ᪥ �ଠ���� ��ࠬ�� ��।������, ��������� ᮮ⢥�����饩 㪠������ �� ���饭�� ��ப�� ᨬ�����. �����᪨�� ��㬥�⠬� �맮�� ����� ��ப� ᨬ�����, ࠧ�������� �����묨. ������ ������, ᮤ�ঠ騥�� � ��ப��, �����祭��� � ����窨, ��� ��������� ����� �� ࠧ������ ��㬥���. �� �ଠ���� � 䠪��᪨� ��ࠬ�� ������ ᮢ������. �� ���᪥ �ଠ���� ��ࠬ�� ��ᬠ�ਢ����� ��ப� � ᨬ����� ����⠭�� � "��ப�-ᨬ�����", �� ��� ��।������� �����䨪�� � ��⠫쭮� ��� �ணࠬ�� ��ப� � ᨬ����� ����⠭�� �� �������������. � ����� �ଠ� �������� ��ப� ����୮ ������������ �� ����稥 ��㣨� ��।������� �����䨪��. � ����� �ଠ� ������ ��।������ ����� �த������ �� ��㣮� ��ப�, ����ᠢ � ���� �த�������� ��ப� ᨬ��� \. ��ࠢ����� ��ப� ����: #undef �����䨪��� �ਢ���� � ⮬�, ����� �����䨪��� �⠭�� ��� �९����� ����।������. 12.2 ����祭�� 䠩��� ----------------------------------------------------------------- ��ப� �ࠢ����� �������� ����� ���: #include "���-䠩��" �� �⮬ ������ ��ப� �㤥� �������� ᮤ�ন�� �ᥣ� 䠩�� � ������ "���-䠩��". �������� 䠩� ����� ᭠砫� � ⮬ ��⠫���, � ��� ᮤ�ন��� ��室�� 䠩�, � ��⥬ � �������� ��� � �⠭���⭮� ������⥫쭮�� ��⠫����. ��ப� ����� ⠪�� ����ୠ⨢��� ���: #include <���-䠩��> �� �⮬ ���� �믮������ ⮫쪮 � �������� ��� � �⠭������ ��⠫���� (��� ��।������� � ������� �।��, �� ������ �।�⢠�� �몠), � �� � ⮬ ��⠫���, ��� ᮤ�ন��� ��室�� 䠩�. ��ப� include ����� ���� �������묨. 12.3 ����� ��������� ----------------------------------------------------------------- ��ࠢ����� ��ப� ��������� ����� ���: #if ��ࠦ���� �� �⮬ �������, �㤥� �� �� ������ ��ࠦ���� ��������� ���㫥��� ���祭��. ��ࠦ���� ������ �।�⠢���� ᮡ�� ��ࠦ����-����⠭�� (�. �. 15). �� ����� �������� �������⥫�� ��࠭�祭��: ��ࠦ����-����⠭� �� ����� ᮤ�ঠ�� ����⠭�, ������ �����묨 ���⠬� ��� ����⠭� ࠧ���. � ���������� � ����� ������ �몠 �� ����� �ᯮ�짮���� ��।��塞�� 㭠��� ������, �ਬ����塞�� � �����䨪����. �� ���祭�� �㤥� ���㫥��, � ��� �����䨪��� ��।���� � ������� #define � �� �⠫ ��⥬ ����।������ �� �ᯮ�짮����� #undef, � �㫥�� � ��⨢��� ��砥. ��ࠢ����� ��ப� ����: #ifdef �����䨪��� �����, ���� �� �����䨪��� ��� �९����� � ����� ������ ��।�����, � ����, �ਬ���� �� � ���� �ࠢ����� ��ப� #define. ��ࠢ����� ��ப� ����: #ifndef �����䨪��� �������� �����, ���� �� � ����� ������ �����䨪��� ��� �९����� ����।������. �� �ᥬ� �६� �ଠ�� ����� ������ �ந����쭮� � ��ப, ᮤ�ঠ�� �ࠢ������ ��ப� #else � �����饩 �ࠢ���饩 ��ப�� #endif � ���塞�� ���� ���� ��⨭��, � �� ��ப�, �����祭�� ����� #else � #endif �����������. � ���塞�� ���� ���� �����, � ����������� �� ��ப� ����� ��મ� � ���祢� ��� #else ��� (�� ������⢨� #else) #endif. �� �������樨 ����� ���� �������묨. 12.4 ��ࠢ����� ��ப��� ----------------------------------------------------------------- ��� ⮣�, �⮡� ����� �뫮 �ᯮ�짮���� ��㣨� �९������, ��������騥 �ணࠬ�� �� �몥 ��, ��ப� ����: #line ����⠭� "���-䠩��" �ਢ���� � ⮬�, �� ��������� �㤥� ����� (��� 楫�� �⫠��� ��� �������⨪� �訡��), �� ����� ��ப� ��� ���饩 ��ப� ��室���� ⥪�� �������� "����⠭⮩", � ⥪�騩 �室��� 䠩� ����� ���, �������� � ������� �����䨪���. � �����䨪��� ���������, � ⥪�饥 ��� 䠩�� �� ���������. 13. ������� �������� ----------------------------------------------------------------- ��. �. 8.1. 14. ����� ����� ----------------------------------------------------------------- � �⮬ ࠧ���� ��⪮ ���������� ����樨, ����� ����� �믮����� ��� ��ꥪ⠬� ��।������� ⨯��. 14.1 ������ ----------------------------------------------------------------- ��ꥪ�� ⨯� ����� ����� ��।����� � ����⢥ ��㬥�⮢ �㭪樨. ��� ��� ����� �믮����� ��ᢠ������. ���짮��⥫� ����� ��।����� ��㣨� 㤮��� ����樨, ���ਬ��, �ࠢ����� (�� ࠢ���⢮). ��. �. 8.5.10. 14.2 �㭪樨 ----------------------------------------------------------------- ������� ⮫쪮 ��� ����⢨�, ����� ����� �믮����� � �㪭�ﬨ: �� ����� ��뢠�� � ������� �� ����. � ��� �㭪樨 ������ � ��ࠦ���� �� � ����⢥ ���饭�� � ����� �㭪樨, � ���������� 㪠��⥫� �� �㭪��. ����� ��ࠧ��, ��� ⮣�, �⮡� ��।��� ���� �㭪�� ��㣮�, ����� �������: typedef int (*PF) (); extern g (PF); extern f (); g (f); ����� ��।������ g ��� ����, ���: g (PF funcp) { ... (*funcp) (); ... } ����⨬, �� f ������ ���� � ��ࠧ�� ��।����� � ��뢠�饩 �ணࠬ��, ⠪ � ��ࠦ���� g(f) �� ��� �� ��� (. 14.3 ���ᨢ�, 㪠��⥫� � ���������� ----------------------------------------------------------------- ����� ࠧ, ����� � ��ࠦ���� ����砥��� �����䨪��� ⨯� ���ᨢ, �� �८�ࠧ���� � 㪠��⥫� �� ���� ���� �⮣� ���ᨢ�. ��-�� �⮣� �८�ࠧ������ ���ᨢ� �� ����� ���祭�ﬨ. �� ��।������, ������ ���������� [] ����������� ⠪�� ��ࠧ��, �� �1[�2] ������⭮ *((E1)+(E2)). � ᮮ⢥��⢨� � �ࠢ����� �८�ࠧ������, ����� �믮������� �� ����樨 "+", � �1 ���� ���ᨢ��, � �1[�2] 㪠�뢠�� �� �2-�� ���� �1. ����� ��ࠧ��, ��ᬮ��� �� ��ᨬ����, ���������� ���� ������⨢��� ����樥�. � ��砥 ���������� ���ᨢ�� ᮤ�ঠ��� �ࠢ��� �⠭������ ���騬. � � �।�⠢��� ᮡ�� n-���� ���ᨢ � ࠭��� i*j *...*k, �, � � ����砥��� � ��ࠦ����, �� �८�ࠧ���� � (n -1)-���� ���ᨢ � ࠭��� j*...*k. � � 㪠��⥫� �ਬ������ ������ * (� �� ��� � ���� ����, ��� १���� ����������), � १���� �㤥� 㪠�뢠�� �� (n-1)-���� ���ᨢ, ����� ᠬ ���������� �८�ࠧ���� � 㪠��⥫�. ���ᬮ�ਬ, ���ਬ��: int x[3][5]; ����� x �।�⠢��� ᮡ�� ���ᨢ 楫�� �ᥫ ࠧ��୮�� 3* 5. ����� x ����砥��� � ��ࠦ����, �� �८�ࠧ���� � 㪠��⥫� �� (���� �� ���) ��������� ���ᨢ�� 楫�� �ᥫ. � ��ࠦ���� x[i], ��� ������⭮ *(x+1), x�८�ࠧ���� ᭠砫� ���ᠭ�� ��� ᯮᮡ�� � 㪠��⥫�, ��⥬ 1 �८�ࠧ���� � ⨯� x, �� ��� 1 㬭������� �� ����� ��ꥪ�, �� ����� 㪠�뢠�� 㪠��⥫�, � ������ - 5 ��ꥪ⮢ ⨯� integer. �������� ᪫��뢠���� � ����砥��� ���ᨢ (5 楫��), �����, � � ��।�, �८�ࠧ���� � 㪠��⥫� �� ���� ���� ⨯� integer. � ������� ��ன ������, � ᭮�� �ਬ������ �� �� ��㬥��. �� ��� ࠧ १���� �㤥� ����� ⨯ integer. �� �ᥣ� �⮣� ���, �� ���ᨢ� � �몥 �� �࠭���� �����筮 (������ ������ ��������� ����॥), � ���� ������ � ���ᠭ�� ���ᨢ� �������� ��।����� ��ꥬ ����室���� ��� ���ᨢ� �����, �� �� ��ࠥ� ������� ��㣮� � � ������ ������. 14.4 ���� �८�ࠧ������ 㪠��⥫� ----------------------------------------------------------------- ����᪠���� �⤥��� �८�ࠧ������ 㪠��⥫��, ����� ����� �⤥��� �ᯥ���, ������騥 �� 㪠��⥫��. �� ��� �������� � ������� �� ����樨 �८�ࠧ������ ⨯�� (�. �. 7.2 � �. 8.7). �����⥫� ����� �८�ࠧ��뢠���� � �� �� 楫�� ⨯��, �����筮 ����让 ��� ⮣�, �⮡� ������� ���. �㤥� �� ��� �⮣� �ॡ������� ⨯ int ��� long, ������ �� �����⭮� ��設�. �㭪�� �⮡ࠦ���� �젪�� ���� ��設������ᨬ��, �� �� ������ ��뢠�� 㤨������ � ��, �� ������ � ������ன ����樨 ��設�. ������� ��⠫�, ����騥�� �⤥���� ��設, �।�⠢���� � �. 2.6. ��ꥪ� 楫��� ⨯� ����� ���� � ��ࠧ�� �८�ࠧ���� � 㪠��⥫�. �⮡ࠦ���� �� �⮬ �ᥣ�� ��६�頥� 楫��, �८�ࠧ������� �� 㪠��⥫�, � �� �� ᠬ� 㪠��⥫�, �� � ��㣮� ��� ���� ��設������ᨬ�. �����⥫� �� ���� ⨯ ����� ���� �८�ࠧ���� � 㪠��⥫� �� ��㣮� ⨯. � �८�ࠧ㥬� 㪠��⥫� �� ��뫠���� �� ��ꥪ�, ������� ᮮ⢥�����騬 ��ࠧ�� � �����, � ����祭�� � १���� 㪠��⥫� ��� ��� �ᯮ�짮����� ����� �ਢ����� � �訡�� ����樨. �� �⮬ ���ᯥ稢����� ����������� �८�ࠧ������ 㪠��⥫� �� ��ꥪ� ������� ࠧ��� � 㪠��⥫� �� ��ꥪ� ����襣� ࠧ��� � ���⭮ ��� ���������. ���ਬ��, �ணࠬ�� ��।������ ����� ����� ���ਭ����� ࠧ��� (� �����) ��ꥪ�, ��� ���ண� �뤥����� ������, � �������� 㪠��⥫� ⨯� char, ����� ����� ⠪�� ��ࠧ�� �ᯮ�짮������. extern void* alloc (); double* dp; dp = (double*) alloc (sizeof (double)); *dp= 22.0 / 7.0; �� ⠪�� ��।������ ����� ����室��� ���ᯥ��� (��設������ᨬ� ᯮᮡ��), �⮡� �����頥��� ���祭�� ����� ���� �८�ࠧ����� �� 㪠��⥫� � ⨯ double. ����� �㭪�� �㤥� ��७�ᨬ��. ������� ��設� ����� �⫨����� �� ��⮢, �⢮����� ��� 㪠��⥫��, � ⠪�� �ॡ�����ﬨ � ��ࠢ������� ��ꥪ⮢ � �����. ��㯯� ��ࠢ�������� ��ண� �� �� �࠭���, ����� �ॡ���� ��� ��� ��⠢����� �� ���⮢. 15. ���������-��������� ----------------------------------------------------------------- � �������� ����� � �몥 �� �ॡ���� �ᯮ�짮���� ��ࠦ����, �� ������ ������ ��������� ����⠭��. ������ ���ﬨ ����� ��㭨�� ���ᨢ�� (�. 8.3), ��ࠦ���� ������ case (�. 9.7), �����砥�� �� 㬮�砭�� ��㬥��� �㭪樨 (�. 8.3) � ���樠������� (�.8.6). � ��ࢮ� ��砥 � ��ࠦ����� ����� ���⢮���� ⮫쪮 楫� ����⠭��, ᨬ����� ����⠭��, ����⠭�� � ���ᠭ�묨 �������, ��ࠦ���� ����祭�� ࠧ��� (������ sizeof), �������� ��뭭� �����묨 �����ﬨ: + - * / % & | ^ << >> == != < > <= >= && || ��� 㭠�묨 �����ﬨ: - ~ ! ��� �ୠ୮� ����樥�: ? : ��� ��ꥤ������ � ��㯯� ����� �ᯮ�짮������ ��� (�� ��砥� �맮��� �㭪樨). � ��㣨� ��� ����� ����᪠���� ������ ��������. �� ���ᠭ��� ��� ��ࠦ����-����⠭� ����᪠���� �ᯮ�짮����� ����⠭� � ������饩 �窮�, � � ���譨� ��ꥪ⠬ (��ꥪ⠬ ⨯� external) � � ����᪨� ��ꥪ⠬ (��ꥪ⠬ ⨯� static) ��� ���譨� � ����᪨� ���ᨢ��, � ����⢥ �����ᮢ ������ �ᯮ������ ��ࠦ����-����⠭�, ����� �ਬ����� 㭠�� ������ &. �᭮���� �ࠢ��� �� �⮬ ��⮨� � ⮬, �� ���樠������� ������ �� ������ ����� � ����⠭� ��� � ����� ࠭�� ���ᠭ���� ���譥�� ��� ������ ��ꥪ�, ���� ��� ����� ����⠭�. � ��ࠦ�����-����⠭�� �� ��४⨢� _if �ਬ������� ����� ��ண�� �ࠢ���. � ��� ��ࠦ����� �� ������ �ᯮ�짮������ �����, ���ᠭ��, ��� ����⠭��, ��ࠦ���� ����祭�� ࠧ��� (��ࠦ���� sizeof) � ����⠭�� �������. 16. ���������� �� ������������� ----------------------------------------------------------------- ������� ����� �몠 �� ����� ᨫ��� ����ᨬ���� �� �����⭮� ��設�. ����� �ਢ������ ᯨ᮪ ⠪�� 㧪�� ����. ��� ᯨ᮪ �� ��⥭��� �� �, �⮡� ���� ����뢠�騬, ������ �᭮��� ������� � ��� 㯮��������. ��� �����뢠�� �ࠪ⨪�, ������ ��� �����⭮�� ���ᯥ祭��, ⠪��, ��� ࠧ��� �� � �ᮡ������ ��䬥⨪� � ������饩 �窮� � 楫������� �������, � ����設�⢥ ��砥� �� �।�⠢���� ᮡ�� �����. ��㣨� ����� �����⭮�� ���ᯥ祭�� ��ࠦ��� � ࠧ����� ॠ�������. ������� �� ��� ����� ����ᮢ, ����� �㦭� ��⥫쭮 ����������, ������� � ᥡ� ���७�� ����� (�८�ࠧ������ ����⥫쭮�� ᨬ���� � 楫�� ������⥫쭮� ���祭��) � ���冷�, � ��� ����� ࠧ��饭� � ��. ������ ���� ��㣨� ���� �।�⠢���� ᮡ�� �����, ��⥪��騥 �� ⠪��� த� �ᮢ. �� ࠧ��� ��設�� � ॣ����� ��६�����, ����� ����� ����⢨⥫쭮 ࠧ������ � ॣ�����, ࠧ��筮. �⫨砥��� ⠪�� ������⢮ �����⨬�� ⨯��. ��ᬮ��� �� �� ����������, �।�����祭�� ��� ࠡ��� �� �����⭮� ��設�, ��� �ࠢ������ � ⠪��� த� �������: ��譨� ��� ��������� ���ᠭ�� ॣ��� ���� �����������. ������� ��㤭��� ������� �⮫쪮 � ⮬ ��砥, � � ⥪�� �ணࠬ�� ��������� ����������. ���⮬� �१��砩�� ����稢� ����� �ணࠬ��, ����� ������� �� ����� �� ⠪�� �ᮡ�����⥩. ���冷� ������ ��㬥�⮢ �㭪樨 �몮� �� ��।������. �� �������� ��設�� ��㬥��� ��������� �ࠢ�-������, �� ��㣨� - ��-���ࠢ�. ���冷�, � ��� ���� ������� ������ ��䥪��, ⠪�� ����।����. ����� ᨬ����� ����⠭�� � ����⢨⥫쭮�� �।�⠢���� ᮡ�� ��ꥪ�� ⨯� int, ����᪠���� �ᯮ�짮����� ����⠭�, ������ �� ���쪨� ᨬ�����. �����⭠� ॠ������, ������, � �⮬ ��砥 ᨫ�쭮 ������ �� �����⭮� ��設�, ����� �� ࠧ��� ��設�� ���冷�, � ��� ᨬ���� ��������� � ��, ࠧ��砥���. �� �������� ��設�� ���� ��ᢠ������� ���祭�� ��-���ࠢ�, �� ��㣨� - �ࠢ�-������. ��� �⤥���� �ணࠬ�, � ������ ���������� ⮭���� � �८�ࠧ�����ﬨ ⨯�� (���ਬ��, �८�ࠧ������ 㪠��⥫� ⨯� int � 㪠��⥫� ⨯� char � ��ઠ ��뫪� �� ������), �� ��㤭��� ��������, �� ��� ������ ���뢠���� �� ᮣ��ᮢ���� � �����ன ���譥� �奬�� �����. 17. ��������� �������� � ������ ----------------------------------------------------------------- ������ new (�. �. 7.2) ��� ����祭�� ����� �㤥� �ਢ����� � �맮�� �㭪樨: extern void* _new (long); ��㬥�� �� �⮬ ������ ����室���� � ���⮢. � ������ _new �� ����� ���� �㦭� ��ꥬ �����, � �����頥��� �㫥��� ���祭��. ������ delete ��� ��������� ����� ��� ����୮�� �ᯮ�짮����� ��뢠�� �㭪��: extern void _delete (void*); ������� �맮�� _delete() ��� 㪠��⥫�, ����� �� �� ����祭 � ������� _new(), ����।����, ⠪�� ��� � १���� �ᯮ�짮����� _delete() ������ ��� ������ � ⮣� �� 㪠��⥫�. ������, 㤠����� 㪠��⥫�, ����饣� �㫥��� ���祭��, �� �ਢ���� �� � ����� ������� ����⢨�. ��� _new() � _delete() �।�ᬮ�७� ���ᨨ, ����� �ᯮ������� �� 㬮�砭��, ������ ��� �������� ����� ���짮��⥫� ����� �।�ᬮ���� ����� ���室�騥 ���ᨨ. �� ᮧ����� � ������� ������ new ��ꥪ� ⨯� ����� ��������� �㤥� (��� ��ࠧ��) �ᯮ�짮���� new ��� ����祭�� �㦭��� ��ꥬ� �����. �믮���� ��। ��� �ᯮ�짮������ ���� �ਢ������� ��� �⮣� 㪠��⥫�, ����� ॠ�������� � ������� ��������� � ᮡ�⢥���� �뤥����� �����. ���� ��� �㫥��� ���祭��, ����� ᤥ���� ⠪, �� ��� ��ꥪ⮢ ������� ����� �������� �� �㤥� �ᯮ�짮���� �⠭����� ������ ��������� �����. ���ਬ��: class cl { int v[10]; cl () { this = my_own_allocator (sizeof (cl)); } ~cl () { my_own_deallocator (this); this = 0; } } �� �室� � ��������� � ⮬ ��砥, � �뤥����� ����� 㦥 ����� ����, �� �㤥� ����� ���㫥��� ���祭�� (��� � � ��砥 ��⮬���᪨� ��ꥪ⮢) � ࠢ�� ��� � ��⨢��� ��砥. � ��ᢠ������ �믮������ ��� ��������� �ந�������� �����, � �� ��ᢠ������ �㤥� �ᯮ�짮������ ���饭�� � ���������� ��� �������� ����� (� ⠪�� �������). ����� ��ࠧ��, ��������� �������� ����� �㤥� ��뫠���� �� ��ꥪ� �� ���������� �ந�������� �����. � ��ᢠ������ �믮������ ��� ��������� �������� �����, � �� ���祭�� �㤥� ⠪�� �ᯮ�짮������ �������� �ந�������� ����� (� �� �������). 18. ���祭� ᨭ⠪��᪨� ��ࠦ���� �몠 ��++ ----------------------------------------------------------------- ������ ᨭ⠪�� ��ࠦ���� �몠 ��++ ����� ���� ������� ��� ����� ������� ��������� �몠. �� �� ����뢠�� � �筮�� ������� �몠. 18.1 ��ࠦ���� ----------------------------------------------------------------- ��ࠦ����: �� ��ࠦ���� ����ୠ�-������ ��ࠦ���� ��ࠦ���� ? ��ࠦ���� : ��ࠦ���� ᯨ᮪-��ࠦ���� ��: �᭮���� * �� & �� - �� ! �� ~ �� ++ �� -- �� �� ++ �� -- ( ���-⨯� ) ��ࠦ���� ���⮥-���-⨯� ( ᯨ᮪-��ࠦ���� ) sizeof ��ࠦ���� sizeof ( ���-⨯� ) new ���-⨯� new ( ���-⨯� ) �᭮����: id :: �����䨪��� constant string this ( ��ࠦ���� ) primary[ ��ࠦ���� ] primary ( �����. ᯨ᮪-��ࠦ���� ) primary.id primary->id id: �����䨪��� ���-⨯� :: �����䨪��� ᯨ᮪-��ࠦ����: ��ࠦ���� ᯨ᮪-��ࠦ����, ��ࠦ���� ������: 㭠ୠ�-������ ����ୠ�-������ ᯥ樠�쭠�-������ ���冷� �믮������ ������� ����権 ���騩: ����ୠ�-������: * / % + - << >> < > == != & ^ | && || = += -= *= /= %= ^= &= |= >>= <<= 㭠ୠ�-������: * & - ~ ! ++ -- ᯥ樠�쭠�-������: () [] ���-⨯�: ����⥫�-ᯥ�䨪���� ����ࠪ��-����⥫� ����ࠪ��-����⥫� ���⮩ * �������-����⥫� ����ࠪ��-����⥫� ( ᯨ᮪-���ᠭ��-��㬥�⮢ ) ���⠪��-����⥫� [ �����. ��ࠦ����-����⠭� ] ( ���⠪��-����⥫� ) ���⮥-���-⨯�: ���-��।������-⨯� char { ᨬ����� } short { ���⪨� } int { 楫� } long { ������ } unsigned { ���������� } float { c ������饩 �窮� } double { ������� �筮�� } ���-��।������-⨯�: �����䨪��� 18.2 ���ᠭ�� ----------------------------------------------------------------- ���ᠭ��: �����. ����⥫�-ᯥ�䨪���� �����. ᯨ᮪-���ᠭ�� ; ����⥫�-����� ���ᠭ��-asm ���ᠭ��-�����: ��㯯� �����䨪��� ; �����. �����䨪��� ; ��㯯�: class { ����� } struct { ������� } union { �� } ���ᠭ��-asm: asm ( ��ப� ); ����⥫�-ᯥ�䨪����: ����⥫�-ᯥ�䨪��� �����. ����⥫�-ᯥ�䨪��� ����⥫�-ᯥ�䨪��� ���⮥-���-⨯� ᯥ�䨪���-����� emun-ᯥ�䨪��� ᯥ�䨪���-���� ᯥ�䨪���-�㭪樨 typedef friend const void ᯥ�䨪���-����: auto { ��⮬���᪨� } extern { ���譨� } register { ॣ���� } static { ����᪨� } ᯥ�䨪���-�㭪樨: inline { ����७��� } overload { ᮢ��饭��� } virtual { ����㠫쭠� } ᯨ᮪-�������: ���ᠭ��-���樠����樨 ���ᠭ��-���樠����樨 , ᯨ᮪-���ᠭ�� ���ᠭ��-���樠����樨: ����⥫� �����. ���樠������ ����⥫�: dname ( ����⥫� ) * const �����. ����⥫� & const �����. ����⥫� ����⥫� ( ᯨ᮪-���ᠭ��-��㬥�⮢ ) ����⥫� [ �����. ��ࠦ����-����⠭� ] dname: ���⮥-dname ���-��।������-⨯� . ���⮥-dname ���⮥-dname: �����䨪��� ���-��।������-⨯� - ���-��।������-⨯� ���-������-�㭪樨 ���-������-�㭪樨: ������ ������ ᯨ᮪-���ᠭ��-��㬥�⮢: �����. ᯨ᮪-���ᠭ��-��㬥�⮢ ... ᯨ᮪-���ᠭ��-��㬥�⮢: ᯨ᮪-���ᠭ��-��㬥�⮢ ᯨ᮪-���ᠭ��-��㬥�⮢ ... ���ᠭ��-��㬥�� ���ᠭ��-��㬥��: ����⥫�-ᯥ�䨪���� ���ᠭ�� ����⥫�-ᯥ�䨪���� ���ᠭ��=��ࠦ����-����⠭� ᯥ�䨪���-�����: ���������-����� {�����. ᯨ᮪-���⮢ } ���������-����� {ᯨ᮪-���⮢ �����. public : ᯨ᮪-���⮢ } ���������-�����: �����. ᯥ�䨪���-��㯯� �����. ᯥ�䨪���-��㯯�: public �����. ���-��।������-⨯� ᯨ᮪-���⮢: ᯨ᮪-���⮢ �����. ᯨ᮪-���⮢ ���ᠭ��-����: ����⥫�-ᯥ�䨪���� �����. ���ᠭ�� ���� ; ���ᠭ��-����: ���ᠭ�� �����. �����䨪��� : ��ࠦ����-����⠭� ���樠������ = ��ࠦ���� = { ᯨ᮪-���樠����樨 } = { ᯨ᮪-���樠����樨, } ( ᯨ᮪-��ࠦ���� ) ᯨ᮪-���樠����樨 : ��०���� ᯨ᮪-���樠����樨, ᯨ᮪-���樠����樨 { ᯨ᮪-���樠����樨 } enum-ᯥ�䨪���: �����. �����䨪���-������� { ᯨ᮪-������� } ᯨ᮪-�������: ������-���� ᯨ᮪-�������, ������-���� ������-����: �����䨪��� �����䨪��� = ��ࠦ����-����⠭� 18.3 ������� ----------------------------------------------------------------- ��⠢���-������: { �����. ᯨ᮪-���ᠭ�� �����. ᯨ᮪ ���ᠭ�� } ᯨ᮪-���ᠭ��: ���ᠭ�� ���ᠭ�� ᯨ᮪-���ᠭ�� ᯨ᮪-�����: ������ ������ ᯨ᮪-����� ������: ��ࠦ���� ; if ( ��ࠦ���� ) ������ if ( ��ࠦ���� ) ������ else ������ while ( ��ࠦ���� ) ������ do ������ while ( ��ࠦ���� ) ; for ( �����. ��ࠦ���� ; �����. ��ࠦ���� ; �����. ��ࠦ���� ) ������ switch ( ��ࠦ���� ) ������ case ��ࠦ����-����⠭� : ������ default : ������ break; continue; return �����. ��ࠦ���� ; goto �����䨪��� ; �����䨪��� : ������ delete ��ࠦ���� ; asm ( ��ப� ) ; ; 18.4 ���譨� ��।������ (external) ----------------------------------------------------------------- program: ���譥�-��।������ ���譥�-��।������ program ���譥�-��।������: ��।������-�㭪樨 ���ᠭ�� ��।������-�㭪樨: ����⥫�-ᯥ�䨪���� �����. ����⥫�-�㭪樨 ���樠������-��������-����� �����. ⥫�-�㭪樨 ����⥫�-�㭪樨: ����⥫� ( ᯨ᮪-���ᠭ��-��㬥�⮢ ) ⥫�-�㭪樨: ��⠢���-������ ���樠������-��������-����� : ( �����. ᯨ᮪-��㬥�⮢ ) 18.5 �९����� define �����䨪��� ��������-��ப� define �����䨪���( �����䨪���,...,�����䨪��� ) ��������-��ப� else endif if ��ࠦ���� ifdef �����䨪��� ifndef �����䨪��� include "���-䠩��" include <���-䠩��> line constant "���-䠩��" undef �����䨪��� 19. ������� �� ����� ������ ������ ����� �� ----------------------------------------------------------------- 19.1 ����७�� ----------------------------------------------------------------- ����� �������� (�. �. 8.4) � ������ (�. �. 7.1) ⨯� ��㬥�⮢ �㭪樨. ����᪠���� ⠪�� �८�ࠧ������ ⨯��. ��� �।�⠢����� ��ࠦ���� � ������饩 �窮� ����� �ᯮ�짮������ ��䬥⨪� � ������饩 �窮� � �����୮� �筮���� (�. �. 6.2). ����᪠���� ��४��⨥ ���� �㭪権 (�. �. 8.6). ����᪠���� ⠪�� ��४��⨥ ����権 (�. �. 7.16 � �. 8.5. 10). �㭪樨 ����� ᮤ�ঠ�� ����७��� ����⠭���� (�. �. 8.1). ��ꥪ�� ������ ����� �।�⠢���� ᮡ�� ����⠭�� (�. �. 8.3). ����᪠���� ����뢠�� ��뫪� �� ��ꥪ�� (�. �. 8.3 � �. 8.6.3). ��� ����� new � delete �।�ᬠ�ਢ����� ������ �࠭���� � ����� (�. �.17.). � ������� ����ᮢ ���ᯥ稢����� ���⮥ �।�⠢����� ������ (�. �. 8.5.8), ���ᯥ稢����� �� ���樠������ (�. �. 8.6.2) � �८�ࠧ������, ��������� ���짮��⥫�� (�. �. 8.5.6), � ⠪�� �������� �ᯮ�짮����� ⨯�� �� ࠡ�� � ����㠫�묨 �㭪�ﬨ (�. �. 8.5.4). ��� ����� �।�⠢��� ᮡ�� ��� ⨯� (�. �. 8.5). ��� 㪠��⥫� ��� ����室����� �ਢ������ ����� ����� ���祭�� void* (����). Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.















