Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎΡΡΡ Π² Π³ΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊΠ΅ ΡΠ·ΡΠΊΠ°, ΠΊΠ°ΡΠ°ΡΡΠ°ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ, ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΊΠ°ΠΊ ΡΠ°ΠΌΠΎΠ΅ Π»Π΅Π²ΠΎΠ΅ ΠΏΠΎΠ΄Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ²Π½ΠΎΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠΏΠ°, Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ Π² ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΌ ΡΡΠΈΠ»Π΅ (Β§R.5.2.3), ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ ΠΎΡΠ»ΠΈΡΠΈΠΌ ΠΎΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»Ρ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ ΡΠΎ (. Π ΡΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΡΡΠΈΡΠ°Π΅ΡΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ.
ΠΠ»Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎΡΡΠΈ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ Π²Π΅ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ, ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ½ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈΠ»ΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ. Π’Π°ΠΊ ΡΡΡΡΠ°Π½ΡΠ΅ΡΡΡ Π½Π΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎΡΡΡ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ»ΡΡΠ°ΡΡ . ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΡΡΡ T - ΠΈΠΌΡ-ΠΏΡΠΎΡΡΠΎΠ³ΠΎ-ΡΠΈΠΏΠ° (Β§R.7.1.6), ΡΠΎΠ³Π΄Π° ΠΈΠΌΠ΅Π΅ΠΌ
T(a)-βΊm = 7; // ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
T(a)++; // ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
T(a,5) βΉβΉ c; // ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
T(*e)(int); // ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅
T(f)[]; // ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅
T(g) = { 1, 2 }; // ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅
T(*d)(double(3)); // ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅
ΠΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ»ΡΡΠ°ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ,
T(a); // ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅
T(*b)(); // ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅
T(c)=7; // ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅
T(d),e,f=3; // ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅
T(g)(h,2); // ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅
ΠΠ΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎΡΡΡ Π·Π΄Π΅ΡΡ ΡΠΈΡΡΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠ°Ρ, Ρ.Π΅. Π½Π° Π΅Π΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ Π²Π»ΠΈΡΠ΅Ρ ΡΠΎΡ ΡΠ°ΠΊΡ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΠΈΠΌΡ ΠΈΠΌΠ΅Π½Π΅ΠΌ-ΡΠΈΠΏΠ° ΠΈΠ»ΠΈ Π½Π΅Ρ.
ΠΡΡΡ Π΄ΡΡΠ³ΠΎΠΉ Π²ΠΈΠ΄ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π·ΡΠ΅ΡΠ°Π΅ΡΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, ΡΡΠΎΠ±Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π² Π±Π»ΠΎΠΊΠ΅ (Β§R.6.3) ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°Π»ΠΎΡΡ ΠΈΠΌΠ΅Π½Π΅ΠΌ-ΡΠΈΠΏΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
void g()
{
int f(); // ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅
int a; // ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅
f(); // ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
a; // ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
}
R.7 ΠΠΏΠΈΡΠ°Π½ΠΈΡ
ΠΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ²; Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΈ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°Π»ΠΈΡΡ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ°ΠΌΡΡΠΈ, ΡΠΎΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠΉ Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ. ΠΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈΠΌΠ΅ΡΡ Π²ΠΈΠ΄
ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ:
ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ-ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ opt ΡΠΏΠΈΡΠΎΠΊ-ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»Π΅ΠΉ opt;
ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅-asm
ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅-ΡΡΠ½ΠΊΡΠΈΠΈ
ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ-ΡΠ²ΡΠ·ΠΈ
ΠΠΏΠΈΡΠ°ΡΠ΅Π»ΠΈ Π² ΡΠΏΠΈΡΠΊΠ΅-ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»Π΅ΠΉ (Β§R.8) ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΠΌΡΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ. ΠΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ-ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΡΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ (Β§R.8.3) ΠΈΠ»ΠΈ Π² ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ. Π‘ΠΏΠΈΡΠΎΠΊ-ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»Π΅ΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΡΡΡΠΌ, ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΊΠ»Π°ΡΡΠ° (Β§R.9) ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ (Β§R.7.2), Ρ.Π΅. ΠΊΠΎΠ³Π΄Π° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ-ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π΅ΡΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ-ΠΊΠ»Π°ΡΡΠ° ΠΈΠ»ΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ-ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ. ΠΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅-asm ΠΎΠ±ΡΡΡΠ½ΡΠ΅ΡΡΡ Π² Β§R.7.3, Π° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ-ΡΠ²ΡΠ·ΠΈ Π² Β§R.7.4. ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ (Β§R.3.2), ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡΡΡ Π² Β§R.10.4.
R.7.1 Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ
Π ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ:
ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ-ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ:
ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ-ΠΊΠ»Π°ΡΡΠ°-ΠΏΠ°ΠΌΡΡΠΈ
ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ-ΡΠΈΠΏΠ°
ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ-fct
ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ-ΡΠ°Π±Π»ΠΎΠ½Π°-ΡΠΈΠΏΠ°
friend
typedef
ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ-ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ:
ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ-ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ opt ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ-ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ
Π‘Π°ΠΌΠ°Ρ Π΄Π»ΠΈΠ½Π½Π°Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ-ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΡΠΈΠΏΠ°, ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ Π² ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ-ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ. ΠΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΠΉ, ΡΡΠΎ ΠΎΠ±ΡΡΡΠ½ΡΠ΅ΡΡΡ Π½ΠΈΠΆΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ,
typedef char* Pc;
static Pc; // ΠΎΡΠΈΠ±ΠΊΠ°: Π½Π΅Ρ ΠΈΠΌΠ΅Π½ΠΈ
ΠΠ΄Π΅ΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ static Pc ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅Π·Π°ΠΊΠΎΠ½Π½ΡΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½Π΅ ΡΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠΈΠΏΠ° Pc. Π§ΡΠΎΠ±Ρ ΠΈΠΌΠ΅ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠΈΠΏΠ° int Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ Pc, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π΄Π°ΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ-ΡΠΈΠΏΠ° int, ΡΡΠΎΠ±Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ (ΠΏΠ΅ΡΠ΅)ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΈΠΌΡ Pc ΠΈΠ· typedef, Π° Π½Π΅ ΠΏΡΠΎΡΡΠΎ Pc ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ-ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
void f(const Pc); // void f(char* const)
void g(const int Pc); // void g(const int)
Π£ΠΊΠ°ΠΆΠ΅ΠΌ, ΡΡΠΎ ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ signed, unsigned, long ΠΈ short ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠ°ΠΊΡΡΡΡΡΡ ΠΊΠ°ΠΊ int, ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΈΠΌΡ-typedef, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΡΠ»Π΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΉ ΡΠΈΠΏΠ°, Π΄ΠΎΠ»ΠΆΠ½Π° Π·Π°Π΄Π°Π²Π°ΡΡ (ΠΏΠ΅ΡΠ΅)ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΠΎΠ΅ ΠΈΠΌΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
void h(unsigned Pc); // void h(unsigned int)
void k(unsigned int Pc); // void k(unsigned int)
R.7.1.1 Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΊΠ»Π°ΡΡΠ° ΠΏΠ°ΠΌΡΡΠΈ
Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΊΠ»Π°ΡΡΠ° ΠΏΠ°ΠΌΡΡΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ°ΠΊΠΈΠ΅:
ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ-ΠΊΠ»Π°ΡΡΠ°-ΠΏΠ°ΠΌΡΡΠΈ:
auto
register
static
extern
Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ auto ΠΈ register ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΈΠΌΠ΅Π½ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΏΠΈΡΠ°Π½Ρ Π² Π±Π»ΠΎΠΊΠ΅ (Β§R.6.3), ΠΈΠ»ΠΈ Π΄Π»Ρ ΡΠΎΡΠΌΠ°Π»ΡΠ½ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² (Β§R.8.3). ΠΠΎΡΡΠΈ Π²ΡΠ΅Π³Π΄Π° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ auto ΠΈΠ·Π±ΡΡΠΎΡΠ½Π° ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π½Π΅ ΡΠ°ΡΡΠΎ, ΡΠ°ΠΊ, auto ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, ΡΡΠΎΠ±Ρ ΡΠ²Π½ΠΎ ΠΎΡΠ΄Π΅Π»ΠΈΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ-ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ (Β§R.6.2).
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ register ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ auto, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΡ, ΡΡΠΎ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΠΌΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π±ΡΠ΄ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎ. ΠΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΎΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½Π°, ΠΈ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡ ΠΎΠ½Π° ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΡΡΡ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΊΠΎΠ³Π΄Π° Π±Π΅ΡΠ΅ΡΡΡ Π°Π΄ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ.
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΡΠΈΡΠ°Π΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ, Π΅ΡΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ½ΠΎ Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ extern ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ (Β§R.3.1).
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ (Β§R.8.4).
Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ static ΠΈ extern ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΊ ΠΈΠΌΠ΅Π½Π°ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈΠ»ΠΈ ΠΊ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΡΠΌ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡΠΌ. ΠΠ½ΡΡΡΠΈ Π±Π»ΠΎΠΊΠ° Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠ΅ΠΉ static ΠΈΠ»ΠΈ ΡΠΎΡΠΌΠ°Π»ΡΠ½ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΡΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠ΅ΠΉ static ΠΈΠ»ΠΈ extern. Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ»Π΅Π½Ρ ΠΊΠ»Π°ΡΡΠ° ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π² Β§R.9.4. Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ extern Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΠ° Π΄Π»Ρ ΡΠ»Π΅Π½ΠΎΠ² ΠΊΠ»Π°ΡΡΠ°.
ΠΠΌΡ ΡΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠ΅ΠΉ static ΠΏΠΎΠ΄Π»Π΅ΠΆΠΈΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΌΡ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ. ΠΠ±ΡΠ΅ΠΊΡΡ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ ΠΊΠ°ΠΊ const, ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°Ρ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΌΡ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ, Π΅ΡΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ½ΠΈ Π½Π΅ Π±ΡΠ»ΠΈ ΠΎΠΏΠΈΡΠ°Π½Ρ Ρ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΡΠ²ΡΠ·ΡΡ. ΠΠΌΡ ΡΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠ΅ΠΉ extern ΠΏΠΎΠ΄Π»Π΅ΠΆΠΈΡ Π²Π½Π΅ΡΠ½Π΅ΠΌΡ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ, Π΅ΡΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°Π½Π΅Π΅ ΠΎΠ½ΠΎ Π½Π΅ Π±ΡΠ»ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Ρ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΡΠ²ΡΠ·ΡΡ. ΠΠΌΡ Ρ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈ Π±Π΅Π· ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ-ΠΊΠ»Π°ΡΡΠ°-ΠΏΠ°ΠΌΡΡΠΈ ΠΏΠΎΠ΄Π»Π΅ΠΆΠΈΡ Π²Π½Π΅ΡΠ½Π΅ΠΌΡ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ, Π΅ΡΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°Π½Π΅Π΅ ΠΎΠ½ΠΎ Π½Π΅ Π±ΡΠ»ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Ρ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΡΠ²ΡΠ·ΡΡ ΠΈΠ»ΠΈ ΡΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠ΅ΠΉ const. Π ΡΠΌΡΡΠ»Π΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΉ, Π½Π΅ ΡΠ²Π»ΡΡΡΠΈΡ ΡΡ ΡΠ»Π΅Π½Π°ΠΌΠΈ, ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ inline ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½Π° static (Β§R.3.3). ΠΠ»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ Π²ΡΠ΅ Π΅Π³ΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΠ΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅, Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ,
static char* f(); // f() ΠΈΠΌΠ΅Π΅Ρ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅
char* f() // f() Π²ΡΠ΅ Π΅ΡΠ΅ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π΅
{/*β¦ */}
char* g(); // g() ΠΈΠΌΠ΅Π΅Ρ Π²Π½Π΅ΡΠ½Π΅Π΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅
static char* g() // ΠΎΡΠΈΠ±ΠΊΠ°: ΠΏΡΠΎΡΠΈΠ²ΠΎΡΠ΅ΡΠΈΠ΅ Π² ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠΈ
{/*β¦ */}
static int a; // `a' ΠΈΠΌΠ΅Π΅Ρ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅
int a; // ΠΎΡΠΈΠ±ΠΊΠ°: Π²ΡΠΎΡΠΎΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅
static int b; // `b' ΠΈΠΌΠ΅Π΅Ρ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅
extern int b; // `b' Π²ΡΠ΅ Π΅ΡΠ΅ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π΅
int c; // `c' ΠΈΠΌΠ΅Π΅Ρ Π²Π½Π΅ΡΠ½Π΅Π΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅
static int c; // ΠΎΡΠΈΠ±ΠΊΠ°: ΠΏΡΠΎΡΠΈΠ²ΠΎΡΠ΅ΡΠΈΠ΅ Π² ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠΈ
extern int d; // `d' ΠΈΠΌΠ΅Π΅Ρ Π²Π½Π΅ΡΠ½Π΅Π΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅
static int d; // ΠΎΡΠΈΠ±ΠΊΠ°: ΠΏΡΠΎΡΠΈΠ²ΠΎΡΠ΅ΡΠΈΠ΅ Π² ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠΈ
ΠΠΌΡ Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ extern. ΠΠ΄Π½Π°ΠΊΠΎ, ΡΠ°ΠΊΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π½Π΅Π»ΡΠ·Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠ΅ΠΆΠ΄Π΅, ΡΠ΅ΠΌ ΠΊΠ»Π°ΡΡ Π±ΡΠ΄Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
struct S;
extern S a;
extern S f();
extern void g(S);
void h()
{
g(a); // ΠΎΡΠΈΠ±ΠΊΠ°: S Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ
f(); // ΠΎΡΠΈΠ±ΠΊΠ°: S Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ
}
R.7.1.2 Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ.
ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ-fct:
inline
virtual
Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ inline ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΡ, ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΡ ΡΠ΅Π»Π° ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΠΌΠ΅ΡΡΠΎ ΠΎΠ±ΡΡΠ½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡΡΡ. Π ΡΠ»ΡΡΠ°Π΅ ΡΡΠ½ΠΊΡΠΈΠΉ, Π½Π΅ ΡΠ²Π»ΡΡΡΠΈΡ ΡΡ ΡΠ»Π΅Π½Π°ΠΌΠΈ, ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ inline Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΈ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ (Β§R.3.3). Π€ΡΠ½ΠΊΡΠΈΡ (Β§R.5.2.2, Β§R.8.2.5), ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ Π² ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΊΠ»Π°ΡΡΠ°, ΠΈΠΌΠ΅Π΅Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ inline.
Π€ΡΠ½ΠΊΡΠΈΡ-ΡΠ»Π΅Π½ ΡΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠ΅ΠΉ inline Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΠΌΠ΅ΡΡ Π² ΡΠΎΡΠ½ΠΎΡΡΠΈ ΡΠ°ΠΊΠΎΠ΅ ΠΆΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π΅Π΄ΠΈΠ½ΠΈΡΠ΅ ΡΡΠ°Π½ΡΠ»ΡΡΠΈΠΈ, Π³Π΄Π΅ ΠΎΠ½Π° ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ.
Π€ΡΠ½ΠΊΡΠΈΡ-ΡΠ»Π΅Π½ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠ²Π½ΠΎ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΡΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠ΅ΠΉ inline ΠΏΡΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΊΠ»Π°ΡΡΠ°, ΡΡΠΎΠ±Ρ ΠΎΠ½Π° ΡΡΠ°ΠΊΡΠΎΠ²Π°Π»Π°ΡΡ ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°. ΠΡΠ»ΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ inline Π½Π΅ Π±ΡΠ»ΠΎ, ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ Π²Π½Π΅ΡΠ½ΠΈΠΌ, Π΅ΡΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠ΅ΠΉ inline Π½Π΅ ΠΏΠΎΡΠ²ΠΈΡΡΡ ΠΏΠ΅ΡΠ΅Π΄ ΠΏΠ΅ΡΠ²ΡΠΌ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ.
class X {
public:
int f();
inline int g(); // X::g() ΠΈΠΌΠ΅Π΅Ρ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅
int h();
};
void k(X* p)
{
int i = p-βΊf(); // ΡΠ΅ΠΏΠ΅ΡΡ X::f() Π²Π½Π΅ΡΠ½Π΅Π΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅
int j = p-βΊg();
//β¦
}
inline int X::f() // ΠΎΡΠΈΠ±ΠΊΠ°: Π²ΡΠ·ΠΎΠ² Π΄ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ
// ΠΊΠ°ΠΊ inline
{
//β¦
}
inline int X::g()
{
//β¦
}
inline int X::h() // ΡΠ΅ΠΏΠ΅ΡΡ X::h() ΠΈΠΌΠ΅Π΅Ρ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅