ΠΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎΠ³ΠΎ ΡΡΠ΅Π΄ΡΡΠ²Π°, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄Π΅ΡΡΡΡΠΊΡΠΎΡΡ ΡΠ΅ΡΠΈΡΡ Π²ΠΎΠΏΡΠΎΡ, Π±ΡΠ» Π»ΠΈ Π΅Π³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΎΠ·Π΄Π°Π½ Ρ ΠΏΠΎΠΌΠΎΡΡΡ new, Π½Π΅ ΠΈΠΌΠ΅Π΅ΡΡΡ, ΠΊΠ°ΠΊ Π½Π΅Ρ ΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅Π³ΠΎ Π΅ΠΌΡ ΡΠ·Π½Π°ΡΡ, Π²ΡΠ·Π²Π°Π»Π° Π»ΠΈ Π΅Π³ΠΎ delete, ΠΈΠ»ΠΈ ΠΎΠ½ Π²ΡΠ·Π²Π°Π½ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ, Π²ΡΡ ΠΎΠ΄ΡΡΠΈΠΌ ΠΈΠ· ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ. ΠΡΠ»ΠΈ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΡΠΎ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, ΡΠΎ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π³Π΄Π΅-ΡΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π΄Π»Ρ Π΄Π΅ΡΡΡΡΠΊΡΠΎΡΠ°. ΠΡΡΠ³ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± β ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ, ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ. ΠΡΠ»ΠΈ ΡΠ΄Π°Π΅ΡΡΡ ΡΠΏΡΠ°Π²ΠΈΡΡΡΡ Ρ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ, ΡΠΎ Π²ΡΠΎΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΈΠ½ΡΡΠ΅ΡΠ° Π½Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ.
ΠΡΠ»ΠΈ ΡΠΎΡ, ΠΊΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΠΊΠ»Π°ΡΡ, ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΈ Π΅Π³ΠΎ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ, ΡΠΎ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ» ΡΠΏΡΠΎΡΡΠΈΡΡ ΠΊΠ»Π°ΡΡ, ΠΈΡΡ ΠΎΠ΄Ρ ΠΈΠ· ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΎ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ. ΠΠΎΠ³Π΄Π° ΠΊΠ»Π°ΡΡ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠΈΡΠΎΠΊΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ, ΡΠ°ΠΊΠΈΡ Π΄ΠΎΠΏΡΡΠ΅Π½ΠΈΠΉ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π»ΡΡΡΠ΅ ΠΈΠ·Π±Π΅Π³Π°ΡΡ.
5.5.8 ΠΠ±ΡΠ΅ΠΊΡΡ ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Π Π°Π·ΠΌΠ΅ΡΠ°
ΠΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π±Π΅ΡΠ΅Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈ ΠΎΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ°ΠΌΡΡΠΈ, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΊΠΎΠ½ΡΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΠ°Π·ΠΌΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π½Π΅Π΄Π΅ΡΠ΅ΡΠΌΠΈΠ½ΠΈΡΠΎΠ²Π°Π½. Π ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ Π²ΠΌΠ΅ΡΠ°ΡΡΠΈΠ΅ (ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΡΠ΅ β ΠΏΠ΅ΡΠ΅Π².) ΠΊΠ»Π°ΡΡΡ vector, stack, intset ΠΈ table ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°Π»ΠΈΡΡ ΠΊΠ°ΠΊ ΡΡΡΡΠΊΡΡΡΡ Π΄ΠΎΡΡΡΠΏΠ° ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π½Π° ΡΠ΅Π°Π»ΡΠ½ΡΡ ΠΏΠΌΡΡΡ. ΠΡΠΎ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅Ρ, ΡΡΠΎ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ°ΠΊΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π² ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π²Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ, ΠΈ ΡΡΠΎ Π»ΡΠ±ΠΎΠ΅ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ Ρ ΡΠ°Π½ΠΈΠΌΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΊΠΎΡΠ²Π΅Π½Π½ΡΡ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
class char_stack (* int size; char* top; char* s; public: char_stack(int sz) (* top=s=new char[size=sz]; *) ~char_stack() (* delete s; *) // Π΄Π΅ΡΡΡΡΠΊΡΠΎΡ void push(char c) (* *top++ = c; *) char pop() (* return *βtop; *) *);
ΠΡΠ»ΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π² ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΠΈ, ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ Π½Π΅ Π½ΡΠΆΠ½ΠΎ. ΠΠΎΡ Π΄ΡΡΠ³ΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ:
class char_stack (* int size; char* top; char s[1]; public: char_stack(int sz); void push(char c) (* *top++ = c; *) char pop() (* return *βtop; *) *);
char_stack::char_stack(int sz) (* if (this) error(Β«ΡΡΠ΅ΠΊ Π½Π΅ Π² ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈΒ»); if (sz Β« 1) error(βΡΠ°Π·ΠΌΠ΅Ρ ΡΡΠ΅ΠΊΠ° Β« 1β); this = (char_stack*) new char[sizeof(char_stack)+sz-1]; size = sz; top = s; *)
ΠΠ°ΠΌΠ΅ΡΡΡΠ΅, ΡΡΠΎ Π΄Π΅ΡΡΡΡΠΊΡΠΎΡ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π½ΡΠΆΠ΅Π½, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΠΌΡΡΡ, ΠΊΠΎΡΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ char_stack, ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡΡ delete Π±Π΅Π· Π²ΡΡΠΊΠΎΠ³ΠΎ ΡΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠΎ ΡΡΠΎΡΠΎΠ½Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°.
5.6 Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡ
1. (*1) ΠΠΎΠ΄ΠΈΡΠΈΡΠΈΡΡΠΉΡΠ΅ Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΠΉ ΠΊΠ°Π»ΡΠΊΡΠ»ΡΡΠΎΡ ΠΈΠ· ΠΠ»Π°Π²Ρ 3, ΡΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ»Π°ΡΡ table.
2. (*1) Π Π°Π·ΡΠ°Π±ΠΎΡΠ°ΠΉΡΠ΅ tnode (#Ρ.8.5) ΠΊΠ°ΠΊ ΠΊΠ»Π°ΡΡ Ρ ΠΊΠΎΠ½ΡΡΡΠΊΡΠΎΡΠ°ΠΌΠΈ, Π΄Π΅ΡΡΡΡΠΊΡΠΎΡΠ°ΠΌΠΈ ΠΈ Ρ.ΠΏ. ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ ΠΈΠ· tnode'ΠΎΠ² ΠΊΠ°ΠΊ ΠΊΠ»Π°ΡΡ Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°ΠΌΠΈ, Π΄Π΅ΡΡΡΡΠΊΡΠΎΡΠ°ΠΌΠΈ ΠΈ Ρ.ΠΏ.
3. (*1) ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠΉΡΠ΅ ΠΊΠ»Π°ΡΡ intset (#5.3.2) Π² ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΡΡΠΎΠΊ.
4. (*1) ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠΉΡΠ΅ ΠΊΠ»Π°ΡΡ intset Π² ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ·Π»ΠΎΠ² node, Π³Π΄Π΅ node β ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΠ°Ρ Π²Π°ΠΌΠΈ ΡΡΡΡΠΊΡΡΡΠ°.
5. (*3) ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ ΠΊΠ»Π°ΡΡ Π΄Π»Ρ Π°Π½Π°Π»ΠΈΠ·Π°, Ρ ΡΠ°Π½Π΅Π½ΠΈΡ, Π²ΡΡΠΈΡΠ»Π½ΠΈΡ ΠΈ ΠΏΠ΅ΡΠ°ΡΠΈ ΠΏΡΠΎΡΡΡΡ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, ΡΠΎΡΡΠΎΡΡΠΈΡ ΠΈΠ· ΡΠ΅Π»ΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ +, -, * ΠΈ /. ΠΡΠΊΡΡΡΡΠΉ ΠΈΡΠ΅ΡΡΠ΅ΠΉΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ:
class expr (* // ... public: expr(char*); int eval(); void print(); *) ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΡΡΠΎΠΊΠ° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° expr::expr() ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΡΠΆΠ΅Π½ΠΈΠ΅ΠΌ. Π€ΡΠ½ΠΊΡΠΈΡ expr::eval() Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π²ΡΡΠ°ΠΆΠ½ΠΈΡ, Π° expr::print() ΠΏΠ΅ΡΠ°ΡΠ°Π΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² cout. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΠΊ:
expr x(Β«123/4+123*4-3Β»); cout Β«β "x = " «« x.eval() «« Β«\nβ; x.print();
ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ ΠΊΠ»Π°ΡΡ expr Π΄Π²Π° ΡΠ°Π·Π°: ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π² ΠΊΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ²ΡΠ·Π°Π½Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΡΠ·Π»ΠΎΠ², Π° Π΄ΡΡΠ³ΠΎΠΉ ΡΠ°Π· β ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΡ ΡΡΡΠΎΠΊΡ. ΠΠΎΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΡΠΉΡΠ΅ Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ ΠΏΠ΅ΡΠ°ΡΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ: Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠ°ΡΡΡΠ°Π²Π»Π΅Π½Π½ΡΠΌΠΈ ΡΠΊΠΎΠ±ΠΊΠ°ΠΌΠΈ,Π² ΠΏΠΎΡΡΡΠΈΠΊΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ,Π² Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ ΠΈ Ρ.Π΄.
6. (*1) ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ ΠΊΠ»Π°ΡΡ char_queue (ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½Π°Ρ ΠΎΡΠ΅ΡΠ΅Π΄Ρ) ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΎΡΠΊΡΡΡΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π½Π΅ Π·Π°Π²ΠΈΡΠ΅Π» ΠΎΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ. Π Π΅Π°Π»ΠΈΠ·ΡΠΉΡΠ΅ char_queue ΠΊΠ°ΠΊ (1) ΡΠ²ΡΠ·Π°Π½Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΈ ΠΊΠ°ΠΊ (2) Π²Π΅ΠΊΡΠΎΡ. Π ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡΠΈ Π½Π΅ Π·Π°Π±ΠΎΡΡΠ΅ΡΡ.
7. (*2) ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ ΠΊΠ»Π°ΡΡ histogram (Π³ΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°), Π² ΠΊΡΠΎΡΠΎΠΌ Π²Π΅Π΄Π΅ΡΡΡ ΠΏΠΎΠ΄ΡΡΠ΅Ρ ΡΠΈΡΠ΅Π» Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°Π΄Π°ΡΡΡΡ ΠΊΠ°ΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° histogram. ΠΠ±Π΅ΡΠΏΠ΅ΡΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΠ²ΠΎΠ΄Π° Π³ΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° ΠΏΠ΅ΡΠ°ΡΡ. Π‘Π΄Π΅Π»Π°ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, Π²ΡΡ ΠΎΠ΄ΡΡΠΈΡ Π·Π° Π³ΡΠ°Π½ΠΈΡΡ. ΠΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠ°: Β«task.hΒ».
8. (*2) ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠ»Π°ΡΡΠΎΠ², ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠ΅ ΡΠΈΡΠ»Π° Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌΠΈ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡΠΌΠΈ. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΊΠ»Π°ΡΡ ΠΈΠΌΠ΅Π΅Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ, Π·Π°Π΄Π°ΡΡΠΈΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π½ΠΈΡ, ΠΈ ΡΡΠ½ΠΊΡΠΈΡ draw, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Β«ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅Β» Π·Π½ΡΠ΅Π½ΠΈΠ΅. ΠΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠ°: Β«task.hΒ». ΠΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΊΠ»Π°ΡΡ intset.
9. (*2) ΠΠ΅ΡΠ΅ΠΏΠΈΡΠΈΡΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ date (#5.8.2), ΠΏΡΠΈΠΌΠ΅Ρ char_stack (#5.2.5) ΠΈ ΠΏΡΠΈΠΌΠ΅Ρ intset (#5.3.2) Π½Π΅ ΠΈΡΠΏΠΎΠ»Π·ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠ»Π΅Π½ΠΎΠ² (Π΄Π°ΠΆΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠ² ΠΈ Π΄Π΅ΡΡΡΡΠΊΡΠΎΡΠΎΠ²). ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ class ΠΈ friend. Π‘ΡΠ°Π²Π½ΠΈΡΠ΅ Ρ Π²Π΅ΡΡΠΈΡΠΌΠΈ, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ»Π΅Π½Ρ.
10. (*3) ΠΠ»Ρ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ ΡΠ·ΡΠΊΠ° ΡΠΏΡΠΎΠ΅ΠΊΡΠΈΡΡΠΉΡΠ΅ ΠΊΠ»Π°ΡΡ ΡΠ°Π±Π»ΠΈΡΠ° ΠΈΠΌΠ΅Π½ ΠΈ ΠΊΠ»Π°ΡΡ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ Π² ΡΠ°Π±Π»ΠΈΡΡ ΠΈΠΌΠ΅Π½. Π§ΡΠΎΠ±Ρ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, ΠΊΠ°ΠΊ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°Π±Π»ΠΈΡΠ° ΠΈΠΌΠ΅Π½, ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΡΡΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ°.
11. (*2) ΠΠΎΠ΄ΠΈΡΠΈΡΠΈΡΡΠΉΡΠ΅ ΠΊΠ»Π°ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ· Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡ 5 ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π½ΠΈΡ =. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΠ»Π°ΡΡ ΡΠ°Π±Π»ΠΈΡΠ° ΠΈΠΌΠ΅Π½ ΠΈΠ· Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡ 10.
12. (*1) ΠΠ°Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°:
#include Β«stream.hΒ»
main() (* cout Β«β Β«Hello, world\nβ; *)
ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΡΠΉΡΠ΅ Π΅Π΅, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π²ΡΠ΄Π°ΡΡ
Initialize Hello, world Clean up
ΠΠ΅ Π΄Π΅Π»Π°ΠΉΡΠ΅ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² main().
ΠΠ»Π°Π²Π° 6 ΠΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠ° ΠΠΏΠ΅ΡΠ°ΡΠΈΠΉ
ΠΠ΄Π΅ΡΡ Π²ΠΎΠ΄ΡΡΡΡ ΠΡΠ°ΠΊΠΎΠ½Ρ!
ΡΡΠ°ΡΠΈΠ½Π½Π°Ρ ΠΊΠ°ΡΡΠ°Π ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π°ΠΏΠΏΠ°ΡΠ°Ρ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΉ Π² Π‘++ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΠΌΡΡΠ» ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΏΡΠΈ ΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°. ΠΡΠΎΠΌΠ΅ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΡ , ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π΅ΡΠ΅ ΠΈ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠΏΡΠ°ΡΠΈΠΈ, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ, Π²ΡΠ·ΠΎΠ²Π° () ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ [], Π° ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ. ΠΠΎΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ²Π½ΠΎΠ΅ ΠΈ Π½Π΅ΡΠ²Π½ΠΎΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠΌΡΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ. ΠΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ ΠΎΠΏΡΠ΅Π΄Π»ΠΈΡΡ ΠΊΠ»Π°ΡΡ, ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½ΠΈΠΊΠ°ΠΊ ΠΈΠ½Π°ΡΠ΅ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ ΠΈΠ»ΠΈ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ ΠΊΡΠΎΠΌΠ΅ ΠΊΠ°ΠΊ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ.
6.1 ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
Π§Π°ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²Π»ΡΡΡΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡΠΌΠΈ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΡ ΠΏΠΎΠ½ΡΡΠΈΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ int Π² Π‘++ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌΠΈ +, -, *, / ΠΈ Ρ.Π΄. ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ (ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΡ) ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ½ΡΠΈΡ ΡΠ΅Π»ΡΡ ΡΠΈΡΠ΅Π». Π’Π°ΠΊΠΈΠ΅ ΠΏΠΎΠ½ΡΡΠΈΡ ΠΎΠ±ΡΡΠ½ΠΎ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² ΡΠ΅Π±Ρ ΠΌΠ½ΠΆΠ΅ΡΡΠ²ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΡΠ°ΡΠΊΠΎ, ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΈ ΠΏΡΠΈΠ²ΡΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π»ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π½Π°Π΄ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ. Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π»ΠΈΡΡ ΠΎΡΠ΅Π½Ρ ΠΌΠ°Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΡΠ°ΠΊΠΈΡ ΠΏΠΎΠ½ΡΡΠΈΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΠΊΠΈΠ΅ ΠΏΠΎΠ½ΡΡΠΈΡ, ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½Π°Ρ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΠΊΠ°, ΠΌΠ°ΡΡΠΈΡΠ½Π°Ρ Π°Π»Π³Π΅Π±ΡΠ°, Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠΈΠ³Π½Π°Π»Ρ ΠΈ ΡΡΡΠΎΠΊΠΈ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΠΏΡΡΠΌΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Π² Π‘++. ΠΠ»Π°ΡΡΡ Π΄Π°ΡΡ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π² Π‘++ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π½Π΅ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠ½ΡΡ ΠΎΠ±Π΅ΠΊΡΠΎΠ² Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π½Π°Π΄ ΡΡΠΈΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ. ΠΠ½ΠΎΠ³Π΄Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π΄Π΅ΠΉΡΡΠ²ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΊΠ»Π°ΡΡΠΎΠ², ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ ΠΎΠ±Π΅ΡΠΏΡΠΈΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±ΡΠ΅ΠΏΡΠΈΠ½ΡΡΡΡ ΠΈ ΡΠ΄ΠΎΠ±Π½ΡΡ Π·Π°ΠΏΠΈΡΡ Π΄Π»Ρ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΈ ΠΎΠ±Π΅ΠΊΡΠ°ΠΌΠΈ ΠΊΠ»Π°ΡΡΠΎΠ², ΡΠ΅ΠΌ ΡΠ°, ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΡΡΠΈΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π»ΠΈΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ Π·Π°ΠΏΠΈΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
class complex (* double re, im; public: complex(double r, double i) (* re=r; im=i; *) friend complex operator+(complex, complex); friend complex operator*(complex, complex); *);
ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΏΡΠΎΡΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠ½ΡΡΠΈΡ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠ»Π°, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠΈΡΠ»ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΏΠ°ΡΠΎΠΉ ΡΠΈΡΠ΅Π» Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ ΡΠΎΡΠ½ΠΎΡΡΠΈ, ΡΠ°Π±ΠΎΡΠ° Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ + ΠΈ * (ΠΈ ΡΠΎΠ»ΡΠΊΠΎ). ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ Π·Π°Π΄Π°Π΅Ρ ΡΠΌΡΡΠ» ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ + ΠΈ * Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ Ρ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ operator+ ΠΈ operator*. ΠΡΠ»ΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π°Π½Ρ b ΠΈ c ΡΠΈΠΏΠ° complex, ΡΠΎ b+c ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ (ΠΏΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ) operator+(b,c). Π’ΠΏΠ΅ΡΡ Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΏΡΠΈΠ½ΡΡΡΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΡ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
void f() (* complex a = complex(1, 3.1); complex b = complex(1.2, 2); complex c = b;
a = b+c; b = b+c*a; c = a*b+complex(1,2); *)
ΠΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΎΠ±ΡΡΠ½ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠ², ΠΏΠΎΡΡΠΎΠΌΡ Π²ΡΠΎΡΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ b=b+(c*a), Π° Π½Π΅ b=(b+c)*a.
6.2 Π€ΡΠ½ΠΊΡΠΈΠΈ ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ
ΠΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ:
+ β * / % ^ amp; ! ~ ! = Β« Β» += -= *= /= %= ^= amp;= != Β«β βΒ» »»= Β«β= == != Β«= β= amp; amp; !! ++ β [] () new delete
ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΡΠ΅ΡΡΡΠ΅ β ΡΡΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ (#6.7), Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ (#6.8), Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ (#3.2.6). ΠΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΊΠ°ΠΊ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π²ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ. ΠΠ΅Π»ΡΠ·Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ½Π°ΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ % ΠΈΠ»ΠΈ Π±ΠΈΠ½Π°ΡΠ½ΡΡ !. ΠΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π½ΠΎΠ²ΡΠ΅ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, Π½ΠΎ Π² ΡΠ΅Ρ ΡΠ»ΡΡΠ°ΡΡ , ΠΊΠΎΠ³Π΄Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π½Π΅Π΄ΠΎΡΡΡΠΎΡΠ½ΠΎ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π·Π°ΠΏΠΈΡΡ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΡΠΏΠΎΠ»Π·ΡΠΉΡΠ΅ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π΅ **, Π° pow(). ΠΡΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠΊΠ·Π°ΡΡΡΡ Π΄ΡΠ°ΠΊΠΎΠ½ΠΎΠ²ΡΠΊΠΈΠΌΠΈ, Π½ΠΎ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΌΠΎΠ³ΡΡ ΠΎΡΠ΅Π½Ρ Π»Π΅Π³ΠΊΠΎ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π½Π΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎΡΡΡΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° ΠΏΠ΅ΡΠ²ΡΠΉ Π²Π·Π³Π»ΡΠ΄ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ **, ΠΎΠ·Π½Π°ΡΠ°ΡΡΠ΅ΠΉ Π²ΠΎΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΡΡΠ΅ΠΏΠ΅Π½Ρ, ΠΌΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎΠΉ ΠΈ ΠΏΡΠΎΡΡΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ, Π½ΠΎ ΠΏΠΎΠ΄ΡΠΌΠ°ΠΉΡΠ΅ Π΅ΡΠ΅ ΡΠ°Π·. ΠΠΎΠ»ΠΆΠ½Π° Π»ΠΈ ** ΡΠ²ΡΠ·ΡΠ²Π°ΡΡΡΡ Π²Π»Π΅Π²ΠΎ (ΠΊΠ°ΠΊ Π² Π€ΠΎΡΡΡΠ°Π½Π΅) ΠΈΠ»ΠΈ Π²ΠΏΡΠ°Π²ΠΎ (ΠΊΠ°ΠΊ Π² ΠΠ»Π³ΠΎΠ»Π΅)? ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ a**p Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ a*(*p) ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ (a)**(p)?
ΠΠΌΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π΅ΡΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ operator (ΡΠΎ Π΅ΡΡΡ, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ), Π·Π° ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ°ΠΌΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, operator««. Π€ΡΠ½ΠΊΡΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Π»ΡΠ±Π°Ρ Π΄ΡΡΠ³Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ β ΡΡΠΎ Π»ΠΈΡΡ ΡΠΎΠΊΡΠ°ΡΠ΅Π½Π½Π°Ρ Π·Π°ΠΏΠΈΡΡ ΡΠ²Π½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
void f(complex a, complex b) (* complex c = a + b; // ΡΠΎΠΊΡΠ°ΡΠ΅Π½Π½Π°Ρ Π·Π°ΠΏΠΈΡΡ complex d = operator+(a,b); // ΡΠ²Π½ΡΠΉ Π²ΡΠ·ΠΎΠ² *)