CPP_TREF (1018899)

Файл №1018899 CPP_TREF (Сборник литературы - С и С++)CPP_TREF (1018899)2017-07-08СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла

 ================================================================= ���� ���������������� �++ ���������� ����������� �. ��᪢�, 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* (����). 

Характеристики

Тип файла
Документ
Размер
159,59 Kb
Тип материала
Высшее учебное заведение

Тип файла документ

Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.

Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.

Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.

Список файлов книги

С и С++ - сборник литературы
C++ Бархатный путь - Марченко А
cpp_001.shtml
cpp_002.shtml
cpp_003.shtml
cpp_004.shtml
cpp_005.shtml
cpp_006.shtml
cpp_007.shtml
cpp_008.shtml
cpp_009.shtml
cpp_010.shtml
cpp_011.shtml
cpp_012.shtml
cpp_013.shtml
cpp_014.shtml
cpp_015.shtml
cpp_016.shtml
cpp_017.shtml
cpp_018.shtml
cpp_019.shtml
cpp_020.shtml
cpp_021.shtml
cpp_022.shtml
cpp_023.shtml
cpp_024.shtml
cpp_025.shtml
cpp_026.shtml
cpp_027.shtml
cpp_030.shtml
cpp_034.shtml
Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7021
Авторов
на СтудИзбе
260
Средний доход
с одного платного файла
Обучение Подробнее