f (a,(t=3,t+2),c)
ΠΈΠΌΠ΅Π΅Ρ ΡΡΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°, Π²ΡΠΎΡΡΠΌ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 5.
7.16 ΠΠ΅ΡΠ΅Π³ΡΡΠΆΠ΅Π½Π½ΡΠ΅ ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ
ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ΅Π½ΠΎ, ΡΠΎ Π΅ΡΡΡ, ΠΎΠΏΠΈΡΠ°Π½ΠΎ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π»ΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΠΏΠ΅ΡΠ°Π½Π΄ΠΎΠ² ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² (ΡΠΌ. #8.5.11). ΠΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠ½ΠΎ. ΠΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠΌΡΡΠ» ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΏΡΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΈΡ ΠΊ Π½Π΅ΠΊΠ»Π°ΡΡΠΎΠ²ΡΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ. ΠΡΠ΅Π΄ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΡΠΌΡΡΠ» ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ = ΠΈ amp; (ΡΠ½Π°ΡΠ½ΠΎΠΉ) ΠΏΡΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΈΡ ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠΌΠ΅Π½Π΅Π½.
ΠΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ ΠΊ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ ΡΠΈΠΏΠ°ΠΌ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ++a ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎ a+=1), Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ ΠΊ ΠΊΠ»Π°ΡΡΠΎΠ²ΡΠΌ ΡΠΈΠΏΠ°ΠΌ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΏΠ΅ΡΡΠΈΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅, Π² ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ ΡΠΈΠΏΠ°ΠΌ ΡΡΠ΅Π±ΡΡΡ, ΡΡΠΎΠ±Ρ ΠΎΠΏΠ΅ΡΠ°Π½Π΄ Π±ΡΠ» lvalue; ΡΡΠΎ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠΎΠ²ΡΡ ΡΠΈΠΏΠΎΠ².
7.16.1 Π£Π½Π°ΡΠ½ΡΠ΅ ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ
Π£Π½Π°ΡΠ½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ, ΠΏΡΠ΅ΡΠΈΠΊΡΠ½Π°Ρ ΠΈΠ»ΠΈ ΠΏΠΎΡΡΡΠΈΠΊΡΠ½Π°Ρ, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΠΈΠ»ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ»Π΅Π½Π° (ΡΠΌ. #8.5.4), Π½Π΅ ΠΏΠΎΠ»ΡΡΠ°ΡΡΠ΅ΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², ΠΈΠ»ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄ΡΡΠ³Π° (ΡΠΌ. #8.5.10), ΠΏΠΎΠ»ΡΡΠ°ΡΡΠ΅ΠΉ ΠΎΠ΄ΠΈΠ½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, Π½ΠΎ Π½Π΅ Π΄Π²ΡΠΌΡ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. Π’Π°ΠΊ, Π΄Π»Ρ Π»ΡΠ±ΠΎΠΉ ΡΠ½Π°ΡΠ½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ @, [email protected] ΠΈ @x ΠΌΠΎΠ³ΡΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΡΠΎΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ x.ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ@() ΠΈΠ»ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ@(x). ΠΡΠΈ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ++ ΠΈ β Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π»ΠΈΡΠΈΡΡ ΠΏΡΠ΅ΡΠΈΠΊΡΠ½ΠΎΠ΅ ΠΈ ΠΏΠΎΡΡΡΠΈΠΊΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅.
7.16.2 ΠΠΈΠ½Π°ΡΠ½ΡΠ΅ ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ
ΠΠΈΠ½Π°ΡΠ½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΠΈΠ»ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ»Π΅Π½Π° (ΡΠΌ. #8.5.4), ΠΏΠΎΠ»ΡΡΠ°ΡΡΠ΅ΠΉ ΠΎΠ΄ΠΈΠ½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, ΠΈΠ»ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄ΡΡΠ³Π° (ΡΠΌ. #8.5.9), ΠΏΠΎΠ»ΡΡΠ°ΡΡΠ΅ΠΉ Π΄Π²Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°, Π½ΠΎ Π½Π΅ Π΄Π²ΡΠΌΡ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. Π’Π°ΠΊ, Π΄Π»Ρ Π»ΡΠ±ΠΎΠΉ Π±ΠΈΠ½Π°ΡΠ½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ @, [email protected] ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΎΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΎ ΠΊΠ°ΠΊ x.operator @(y) ΠΈΠ»ΠΈ [email protected](x,y).
7.16.3 ΠΡΠΎΠ±ΡΠ΅ ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ
ΠΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠ΅_Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ( ΡΠΏΠΈΡΠΎΠΊ_Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ opt )
ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠ΅_Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ [ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ]
ΡΡΠΈΡΠ°ΡΡΡΡ Π±ΠΈΠ½Π°ΡΠ½ΡΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌΠΈ. ΠΠΌΠ΅Π½Π°ΠΌΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ²Π»ΡΡΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΠ²Π΅Π½Π½ΠΎ operator() ΠΈ operator[]. ΠΠ±ΡΡΠ΅Π½ΠΈΠ΅ x(arg) ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ x.operator()(arg) Π΄Π»Ρ ΠΊΠ»Π°ΡΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° x. ΠΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ x[y] ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ x. operator[](y).
8. ΠΠΏΠΈΡΠ°Π½ΠΈΡ
ΠΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΠΈ, Π΄Π²Π°Π΅ΠΌΠΎΠΉ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ. ΠΠ½ΠΈ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΡΡΡ ΠΏΠ°ΠΌΡΡΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ. ΠΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈΠΌΠ΅ΡΡ Π²ΠΈΠ΄:
ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅: ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ_ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ opt ΡΠΏΠΈΡΠΎΠΊ_ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»Π΅ΠΉ opt ; ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅_ΠΈΠΌΠ΅Π½ΠΈ asm_ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅
ΠΠΏΠΈΡΠ°ΡΠ΅Π»ΠΈ Π² ΡΠΏΠΈΡΠΊΠ΅_ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»Π΅ΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ, ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°ΡΠΈΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ. Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ_ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΠΏΡΡΠ½Ρ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡΡ Π²Π½Π΅ΡΠ½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ (#10) ΠΈΠ»ΠΈ Π² ΠΎΠΏΠΈΡΠ°Π½ΡΡ Π²Π½Π΅ΡΠ½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ. Π‘ΠΏΠΈΡΠΎΠΊ ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»Π΅ΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΡΡΡΠΌ ΡΠΎΠ»ΠΊΠΎ ΠΏΡΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΊΠ»Π°ΡΡΠ° (#8.5) ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ (#8.10), ΡΠΎ Π΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ_ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ β ΡΡΠΎ class_ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΈΠ»ΠΈ enum_ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ. ΠΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈΠΌΠ΅Π½ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π² #8.8; ΠΎΠΏΡΠ°Π½ΠΈΡ asm ΠΎΠΏΠΈΡΠ°Π½Ρ Π² #8.11.
ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ_ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ: ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ_ΠΊΠ»Π°ΡΡΠ°_ΠΏΠ°ΠΌΡΡΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ_ΡΠΈΠΏΠ° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ_ΡΡΠ½ΠΊΡΠΈΠΈ friend typedef
ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ_ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ: ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ_ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ_ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ opt
Π‘ΠΏΠΈΡΠΎΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ Π½Π΅ΠΏΡΠΎΡΠΈΠ²ΠΎΡΠ΅ΡΠΈΠ² Π² ΠΎΠΏΠΈΡΡΠ²Π°ΠΌΠΎΠΌ Π½ΠΈΠΆΠ΅ ΡΠΌΡΡΠ»Π΅.
8.1 Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ ΠΠ»Π°ΡΡΠ° ΠΠ°ΠΌΡΡΠΈ
Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ β ΡΡΠΎ:
ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ_ΠΊΠ»Π°ΡΡΠ°_ΠΏΠ°ΠΌΡΡΠΈ: auto static extern register
ΠΠΏΠΈΡΠ°Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠ΅ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ auto, static ΠΈ register ΡΠ°ΠΊΠΆΠ΅ ΡΠ»ΡΠΆΠ°Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡΠΌΠΈ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΎΠ½ΠΈ Π²ΡΠ·ΡΠ²Π°ΡΡ ΡΠ·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ΅ΠΌΠ° ΠΏΠ°ΠΌΡΡΠΈ. ΠΡΠ»ΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ extern Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ (#4.2), ΡΠΎ Π³Π΄Π΅-ΡΠΎ Π΅ΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π΄Π»Ρ Π΄Π°Π½Π½ΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ².
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ register Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ ΠΊΠ°ΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ auto (Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ) Ρ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΎΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ, ΡΡΠΎ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΡΠΈΠ»Π΅Π½Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ. ΠΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΎΠΈΠ½ΠΎΡΠΈΡΠΎΠ²Π°Π½Π°. Π Π½ΠΈΠΌ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π°ΡΠ΅ΡΠ° amp;.
Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ auto ΠΈΠ»ΠΈ register ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΊ ΠΈΠΌΠ΅Π½Π°ΠΌ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΌ Π² Π±Π»ΠΎΠΊΠ΅, ΠΈΠ»ΠΈ ΠΊ ΡΠΎΡΠΌΠ°Π»ΡΠ½ΡΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌ. ΠΠ½ΡΡΡΠΈ Π±Π»ΠΎΠΊΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΉ Π½ΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ, Π½ΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΎΡΠΌΠ°Π»ΡΠ½ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ².
Π ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°Π΄Π°Π½ ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌ ΠΎΠ΄ΠΈΠ½ sc_ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΡΠΎΡ. ΠΡΠ»ΠΈ Π² ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΎΡΡΡΡΡΠ²ΡΠ΅Ρ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ_ΠΊΠ»Π°ΡΡΠ°_ΠΏΠ°ΠΌΡΡΠΈ, ΡΠΎ ΠΊΠ»Π°ΡΡ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ Π²Π½ΡΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ Π²Π½Π΅. ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅: ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΡΠ΅ΡΠΊΠΈΠΌΠΈ.
Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ static ΠΈ extern ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠΎΠ»ΠΊΠΎ Π΄Π»Ρ ΠΈΠΌΠ΅Π½ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΎΠΏΠΈΡΠ°Π½ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ:
ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ_ΡΡΠ½ΠΊΡΠΈΠΈ: overload inline virtual
Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠΈ overload Π΄Π΅Π»Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ ΠΈΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ Π΄Π»Ρ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΡΠΌ. #8.9.
Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ inline ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΎΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΠΎΡΡ, Π½Π΅ Π²Π»ΠΈΡΠ΅Ρ Π½Π° ΡΠΌΡΡΠ» ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΎΠΈΠ³Π½ΠΎΡΠΈΡΠ²Π°Π½. ΠΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, ΡΡΠΎΠ±Ρ ΡΠΊΠ°Π·Π°ΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ inline-ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠ΅Π»Π° ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½Π΅Π΅ ΠΎΠ±ΡΡΠ½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΡΠΈ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ. Π€ΡΠ½ΠΊΡΠΈΡ (#8.5.2 ΠΈ #8.5.10), ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ Π²Π½ΡΡΡΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ°, ΡΠ²Π»ΡΠ΅ΡΡΡ inline ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ virtual ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΎΠΏΡΠ°Π½ΠΈΡΡ ΡΠ»Π΅Π½ΠΎΠ² ΠΊΠ»Π°ΡΡΠ°, ΡΠΌ. #8.5.4.
Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ friend ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΡΠΌΠ΅Π½Ρ ΠΏΡΠ°Π²ΠΈΠ» ΡΠΎΡΡΡΠΈΡ ΠΈΠΌΠ΅Π½ΠΈ Π΄Π»Ρ ΡΠ»Π΅Π½ΠΎΠ² ΠΊΠ»Π°ΡΡΠ° ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π²Π½ΡΡΡΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΉ ΠΊΠ»Π°ΡΡΠΎΠ², ΡΠΌ. #8.5.9.
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° typedef Π²Π²ΠΎΠ΄ΠΈΡΡΡ ΠΈΠΌΡ Π΄Π»Ρ ΡΠΈΠΏΠ°, ΡΠΌ. #8.8.
8.2 Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ Π’ΠΈΠΏΠ°
Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°ΠΌΠΈ ΡΠΈΠΏΠΎΠ² (ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ_ΡΠΈΠΏΠ°) ΡΠ²Π»ΡΡΡΡΡ:
ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ_ΡΠΈΠΏΠ°:
ΠΏΡΠΎΡΡΠΎΠ΅_ΠΈΠΌΡ_ΡΠΈΠΏΠ° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ_ΠΊΠ»Π°ΡΡΠ° enum-ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠ»ΠΎΠΆΠ½ΡΠΉ_ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ_ΡΠΈΠΏΠ° const
Π‘Π»ΠΎΠ²ΠΎ const ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΊ Π»ΡΠ±ΠΎΠΌΡ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎΠΌΡ ΡΠΏΠ΅ΡΡΠΈΠΊΠ°ΡΠΎΡΡ_ΡΠΈΠΏΠ°. Π ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΡΠ»ΡΡΠ°ΡΡ Π² ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄Π°Π½ΠΎ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°_ΡΠΈΠΏΠ°. ΠΠ±ΡΠ΅ΠΊΡ ΡΠΈΠΏΠ° const Π½Π΅ ΡΠ»ΡΠ΅ΡΡΡ lvalue. ΠΡΠ»ΠΈ Π² ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΎΠΏΡΡΠ΅Π½ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠΈΠΏΠ°, ΠΎΠ½ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΡΡΡ int.
ΠΏΡΠΎΡΡΠΎΠ΅_ΠΈΠΌΡ_ΡΠΈΠΏΠ°: char short int long unsigned float double const void
Π‘Π»ΠΎΠ²Π° long, short ΠΈ unsigned ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΏΡΠΈΠ»Π°Π³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅. ΠΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΊ ΡΠΈΠΏΡ int; unsigned ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΊ ΡΠΈΠΏΠ°ΠΌ char, short ΠΈ long.
Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ ΠΊΠ»Π°ΡΡΠ° ΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΎΠ±ΡΡΠΆΠ΄Π°ΡΡΡΡ Π² #8.5 ΠΈ #8.10 ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ.
ΡΠ»ΠΎΠΆΠ½ΡΠΉ_ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ_ΡΠΈΠΏΠ°: ΠΊΠ»ΡΡ typedef-ΠΈΠΌΡ ΠΊΠ»ΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ
ΠΊΠ»ΡΡ: class struct union enum
Π‘Π»ΠΎΠΆΠ½ΡΠΉ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠΈΠΏΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ° ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ ΡΠ°ΠΌ, Π³Π΄Π΅ ΠΈΠΌΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΊΡΡΡΠΎ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
class x (* ... *);
void f(int x) (* class x a; // ... *)
ΠΡΠ»ΠΈ ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ° ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ ΡΠ°Π½Π΅Π΅ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π½Π΅ Π±ΡΠ»ΠΎ, ΡΠ»ΠΎΠΆΠ½ΡΠΉ_ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ_ΡΠΈΠΏΠ° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠ°ΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅_ΠΈΠΌΠ΅Π½ΠΈ, ΡΠΌ. #8.8.
8.3 ΠΠΏΠΈΡΠ°ΡΠ΅Π»ΠΈ
Π‘ΠΏΠΈΡΠΎΠΊ_ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»Π΅ΠΉ, ΠΏΠΎΡΠ²Π»ΡΡΡΠΈΠΉΡΡ Π² ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ, Π΅ΡΡΡ ΡΠ°Π·Π΄Π»Π΅Π½Π½Π°Ρ Π·Π°ΠΏΡΡΡΠΌΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»Π΅ΠΉ, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΠΊΡΠΎΡΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ.
ΡΠΏΠΈΡΠΎΠΊ_ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»Π΅ΠΉ: ΠΈΠ½ΠΈΡ_ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»Ρ ΠΈΠ½ΠΈΡ_ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»Ρ , ΡΠΏΠΈΡΠΎΠΊ_ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»Π΅ΠΉ
ΠΈΠ½ΠΈΡ_ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»Ρ:
ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ opt
ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ ΠΎΠ±ΡΡΠΆΠ΄Π°ΡΡΡΡ Π² #8.6. Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π² ΠΎΠΏΠΈΡΠ½ΠΈΠΈ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠΈΠΏ ΠΈ ΠΊΠ»Π°ΡΡ ΠΏΠ°ΠΌΡΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΊ ΠΊΠΎΡΠΎΡΡΠΌ ΠΎΡΠ½ΠΎΡΡΡΡΡ ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»ΠΈ. ΠΠΏΠΈΡΠ°ΡΠ΅Π»ΠΈ ΠΈΠΌΠ΅ΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»Ρ: ΠΎΠΏ_ΠΈΠΌΡ ( ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»Ρ ) * const opt ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»Ρ amp; const opt ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»Ρ ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»Ρ ( ΡΠΏΠΈΡΠΎΠΊ_ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΉ_ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ) ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»Ρ [ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ½ΠΎΠ΅_Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ opt ]
ΠΎΠΏ-ΠΈΠΌΡ: ΠΏΡΠΎΡΡΠΎΠ΅_ΠΎΠΏ_ΠΈΠΌΡ typedef-ΠΈΠΌΡ :: ΠΏΡΠΎΡΡΠΎΠ΅_ΠΎΠΏ_ΠΈΠΌΡ
ΠΏΡΠΎΡΡΠΎΠ΅_ΠΎΠΏ_ΠΈΠΌΡ: ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ typedef-ΠΈΠΌΡ ~ typedef-ΠΈΠΌΡ ΠΈΠΌΡ_ΡΡΠ½ΠΊΡΠΈΠΈ_ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΈΠΌΡ_ΡΡΠ½ΠΊΡΠΈΠΈ_ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ
ΠΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠ° ΡΠ° ΠΆΠ΅, ΡΡΠΎ ΠΈ Π² Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΡ .
8.4 Π‘ΠΌΡΡΠ» ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»Π΅ΠΉ
ΠΠ°ΠΆΠ΄ΡΠΉ ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»Ρ ΡΡΠΈΡΠ°Π΅ΡΡΡ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π΅ΡΠ»ΠΈ Π² Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ, ΠΈΠΌΠ΅ΡΡΠ°ΡΡ ΡΡ ΠΆΠ΅ ΡΠΎΡΠΌΡ, ΡΡΠΎ ΠΈ ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»Ρ, ΡΠΎ ΠΎΠ½Π° Π΄Π°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΈ ΠΊΠ»Π°ΡΡΠ° ΠΏΠ°ΠΌΡΠΈ. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΎΠ²Π½ΠΎ ΠΎΠ΄Π½ΠΎ ΠΎΠΏ_ΠΈΠΌΡ; ΠΎΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π»ΡΠ΅Ρ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΠΌΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ. ΠΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΉ Π½Π΅ΠΊΡΠΎΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ (ΡΠΌ. #8.5.2) , ΠΎΠΏ_ΠΈΠΌΡ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡΡΡΠΌ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ.
ΠΡΠ»ΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π½ΠΈΡΠ΅ΠΌ Π½Π΅ ΡΠ½Π°Π±ΠΆΠ΅Π½Π½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ, ΡΠΎ ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΠΏ, ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ, Π²ΠΎΠ·Π³Π»Π°Π²Π»ΡΡΡΠΈΠΌ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅.
ΠΠΏΠΈΡΠ°ΡΠ΅Π»Ρ Π² ΡΠΊΠΎΠ±ΠΊΠ°Ρ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ΅Π½ ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»Ρ Π±Π΅Π· ΡΠΊΠΎΠ±ΠΎΠΊ, Π½ΠΎ ΡΠ²ΡΠ·ΠΊΡ ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»Π΅ΠΉ ΡΠΊΠΎΠ±ΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ.
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ ΡΠ΅Π±Π΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅
T D1
Π³Π΄Π΅ T β ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠΈΠΏΠ° (ΠΊΠ°ΠΊ int ΠΈ Ρ.Π΄.), Π° D1 β ΠΎΠΏΡΠ°ΡΠ΅Π»Ρ. ΠΠΎΠΏΡΡΡΠΈΠΌ, ΡΡΠΎ ΡΡΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΈΠΌΠ΅ΡΡ ΡΠΈΠΏ Β«... TΒ», Π³Π΄Π΅ Β«...Β» ΠΏΡΡΡΠΎ, Π΅ΡΠ»ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ D1 Π΅ΡΡΡ ΠΏΡΠΎΡΡΠΎ ΠΎΠ±ΡΡΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ (ΡΠ°ΠΊ ΡΡΠΎ ΡΠΈΠΏ x Π² Β«int xΒ» Π΅ΡΡΡ ΠΏΡΠΎΡΡΠΎ int). Π’ΠΎΠ³Π΄Π°, Π΅ΡΠ»ΠΈ D1 ΠΈΠΌΠ΅Π΅Ρ Π²ΠΈΠ΄
*D
ΡΠΎ ΡΠΈΠΏ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π³ΠΎΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° Π΅ΡΡΡ Β«...ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° T.Β»
ΠΡΠ»ΠΈ D1 ΠΈΠΌΠ΅Π΅Ρ Π²ΠΈΠ΄
* const D
ΡΠΎ ΡΠΈΠΏ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π³ΠΎΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° Π΅ΡΡΡ Β«... ΠΊΠΎΠ½ΡΡΠ°Π½Π½ΡΠΉ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° TΒ», ΡΠΎ Π΅ΡΡΡ, ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠΈΠΏΠ°, ΡΡΠΎ ΠΈ *D, Π½ΠΎ Π½Π΅ lvalue.
ΠΡΠ»ΠΈ D1 ΠΈΠΌΠ΅Π΅Ρ Π²ΠΈΠ΄
amp;D
ΠΈΠ»ΠΈ
amp; const D
ΡΠΎ ΡΠΈΠΏ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π³ΠΎΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° Π΅ΡΡΡ Β«... ΡΡΡΠ»ΠΊΠ° Π½Π° T.Β» ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΡΠ»ΠΊΠ° ΠΏΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ lvalue, ΠΈΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ const ΠΈΠ·Π»ΠΈΡΠ½Π΅. ΠΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠΌΠ΅ΡΡ ΡΡΡΠ»ΠΊΡ Π½Π° void (void amp;).
ΠΡΠ»ΠΈ D1 ΠΈΠΌΠ΅Π΅Ρ Π²ΠΈΠ΄
D (ΡΠΏΠΈΡΠΎΠΊ_ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΉ_ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²)
ΡΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΠΏ Β«... ΡΡΠ½ΠΊΡΠΈΡ, ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠ°Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠΈΠΏΠ° ΡΠΏΠΈΡΠΎΠΊ_ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΉ_ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΈ Π²ΠΎΠ·ΡΠ°ΡΠ°ΡΡΠ°Ρ T.Β»
ΡΠΏΠΈΡΠΎΠΊ_ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΉ_ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²: ΡΠΏΠΈΡΠΎΠΊ_ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΉ_ΠΏΠ°ΡΠ°ΠΌ opt ... opt
ΡΠΏΠΈΡΠΎΠΊ_ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΉ_ΠΏΠ°ΡΠ°ΠΌ: ΡΠΏΠΈΡΠΎΠΊ_ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΉ_ΠΏΠ°ΡΠ°ΠΌ , ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅_ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅_ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°
ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅_ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°: ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ_ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»Ρ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ_ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»Ρ = Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ_ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π°Π±ΡΡΡΠ°ΠΊΡ_ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»Ρ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ_ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π°Π±ΡΡΡΠ°ΠΊΡ_ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»Ρ = Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅