ВУЗ:
Составители:
Рубрика:
Ⱦɪɭɠɟɫɬɜɟɧɧɨɣ ɦɨɠɟɬ ɛɵɬɶ ɢ ɮɭɧɤɰɢɹ, ɧɟ ɹɜɥɹɸɳɚɹɫɹ ɤɨɦɩɨɧɟɧɬɨɣ
ɤɚɤɨɝɨ-ɥɢɛɨ ɤɥɚɫɫɚ, ɧɚɩɪɢɦɟɪ:
class XX
{
friend int printXX();
/* Ⱦɪɭɝɢɟ ɤɨɦɩɨɧɟɧɬɵ ɤɥɚɫɫɚ ɏɏ */
}
Ɂɞɟɫɶ ɮɭɧɤɰɢɹ
printXX ɢɦɟɟɬ ɞɨɫɬɭɩ ɤɨ ɜɫɟɦ ɤɨɦɩɨɧɟɧɬɚɦ ɤɥɚɫɫɚ XX,
ɧɟɡɚɜɢɫɢɦɨ ɨɬ ɡɚɤɪɟɩɥɟɧɧɨɝɨ ɡɚ ɧɢɦɢ ɭɪɨɜɧɹ ɞɨɫɬɭɩɚ.
ȼ ɬɟɨɪɢɢ ɨɛɴɟɤɬɧɨ-ɨɪɢɟɧɬɢɪɨɜɚɧɧɨɝɨ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɹ ɫɱɢɬɚɟɬɫɹ,
ɱɬɨ ɩɪɢ ɯɨɪɨɲɨ ɫɩɪɨɟɤɬɢɪɨɜɚɧɧɨɣ ɫɢɫɬɟɦɟ ɤɥɚɫɫɨɜ ɧɟ ɞɨɥɠɧɨ ɛɵɬɶ ɧɟɨɛ-
ɯɨɞɢɦɨɫɬɢ ɜ ɞɪɭɠɟɫɬɜɟɧɧɵɯ ɮɭɧɤɰɢɹɯ, ɨɞɧɚɤɨ ɜ ɪɹɞɟ ɫɥɭɱɚɟɜ ɢɯ ɢɫɩɨɥɶ-
ɡɨɜɚɧɢɟ ɭɩɪɨɳɚɟɬ ɩɨɧɢɦɚɧɢɟ ɢ ɩɨɫɥɟɞɭɸɳɢɟ ɦɨɞɢɮɢɤɚɰɢɢ ɩɪɨɝɪɚɦɦɵ.
4.7. ɋɬɚɬɢɱɟɫɤɢɟ ɤɨɦɩɨɧɟɧɬɵ ɤɥɚɫɫɚ
Ɉɩɢɫɚɬɟɥɶ static ɜɋ++ ɢɦɟɟɬ ɪɚɡɥɢɱɧɨɟ ɧɚɡɧɚɱɟɧɢɟ ɜ ɡɚɜɢɫɢɦɨɫɬɢ
ɨɬ ɤɨɧɬɟɤɫɬɚ, ɜ ɤɨɬɨɪɨɦ ɨɧ ɩɪɢɦɟɧɟɧ.
ɉɟɪɟɦɟɧɧɵɟ ɢ ɮɭɧɤɰɢɢ, ɨɛɴɹɜɥɟɧɧɵɟ ɜɧɟ ɤɥɚɫɫɚ ɢ ɜɧɟ ɬɟɥɚ ɮɭɧɤɰɢɢ ɫ
ɨɩɢɫɚɬɟɥɟɦ
static, ɢɦɟɸɬ ɨɛɥɚɫɬɶ ɞɟɣɫɬɜɢɹ, ɨɝɪɚɧɢɱɟɧɧɭɸ ɮɚɣɥɨɦ, ɜɤɨ-
ɬɨɪɨɦ ɨɧɢ ɨɛɴɹɜɥɟɧɵ.
ɉɟɪɟɦɟɧɧɵɟ, ɨɛɴɹɜɥɟɧɧɵɟ ɤɚɤ
static ɜɧɭɬɪɢ ɮɭɧɤɰɢɢ, ɜɢɞɢɦɵ ɬɨɥɶ-
ɤɨ ɜɧɭɬɪɢ ɷɬɨɣ ɮɭɧɤɰɢɢ, ɧɨ ɫɨɯɪɚɧɹɸɬ ɫɜɨɢ ɡɧɚɱɟɧɢɹ ɩɨɫɥɟ ɜɵɯɨɞɚ ɢɡ
ɮɭɧɤɰɢɢ ɢ ɢɧɢɰɢɚɥɢɡɢɪɭɸɬɫɹ ɬɨɥɶɤɨ ɩɪɢ ɩɟɪɜɨɦ ɨɛɪɚɳɟɧɢɢ ɤ ɮɭɧɤɰɢɢ.
Ʉɨɦɩɨɧɟɧɬɵ ɤɥɚɫɫɚ ɬɚɤɠɟ ɦɨɝɭɬ ɨɛɴɹɜɥɹɬɶɫɹ ɫ ɨɩɢɫɚɬɟɥɟɦ
static,
ɬɚɤɢɟ ɤɨɦɩɨɧɟɧɬɵ - ɞɚɧɧɵɟ ɹɜɥɹɸɬɫɹ ɨɛɳɢɦɢ ɞɥɹ ɜɫɟɯ ɷɤɡɟɦɩɥɹɪɨɜ ɨɛɴɟɤ-
ɬɨɜ ɷɬɨɝɨ ɤɥɚɫɫɚ ɢ ɪɚɡɦɟɳɚɸɬɫɹ ɜ ɩɚɦɹɬɢ ɨɬɞɟɥɶɧɨ ɨɬ ɞɚɧɧɵɯ ɨɛɴɟɤɬɨɜ
ɤɥɚɫɫɚ. Ⱦɨɫɬɭɩ ɤ
static-ɨɦɩɨɧɟɧɬɚɦ ɤɥɚɫɫɚ ɜɨɡɦɨɠɟɧ ɩɨ ɢɦɟɧɢ, ɭɬɨɱɧɟɧ-
ɧɨɦɭ ɢɦɟɧɟɦ ɤɥɚɫɫɚ (ɢɦɟɧɟɦ ɬɢɩɚ) ɢɥɢ ɢɦɟɧɟɦ ɨɛɴɟɤɬɚ ɷɬɨɝɨ ɤɥɚɫɫɚ, ɩɪɢ-
ɱɟɦ ɤ
static-ɤɨɦɩɨɧɟɧɬɚɦ ɤɥɚɫɫɚ ɦɨɠɧɨ ɨɛɪɚɳɚɬɶɫɹ ɞɨ ɫɨɡɞɚɧɢɹ ɷɤɡɟɦɩ-
ɥɹɪɨɜ ɨɛɴɟɤɬɨɜ ɷɬɨɝɨ ɤɥɚɫɫɚ. ɋɬɚɬɢɱɟɫɤɨɟ ɞɚɧɧɨɟ-ɱɥɟɧ ɤɥɚɫɫɚ ɞɨɥɠɧɨ ɛɵɬɶ
ɨɛɹɡɚɬɟɥɶɧɨ ɢɧɢɰɢɚɥɢɡɢɪɨɜɚɧɨ ɜɧɟ ɨɩɢɫɚɧɢɹ ɤɥɚɫɫɚ:
class TBase //ɛɚɡɨɜɵɣ ɤɥɚɫɫ ɞɥɹ ɦɚɫɫɢɜɨɜ ɜɫɟɯ ɬɢɩɨɜ
{
static int nw;
int size, // ɪɚɡɦɟɪ ɷɥɟɦɟɧɬɚ
count, // ɬɟɤɭɳɟɟ ɱɢɫɥɨ ɷɥɟɦɟɧɬɨɜ
maxCount, // ɪɚɡɦɟɪ ɜɵɞɟɥɟɧɧɨɣ ɩɚɦɹɬɢ
delta; //ɩɪɢɪɚɳɟɧɢɟ ɩɚɦɹɬɢ
/* Ⱦɪɭɝɢɟ ɤɨɦɩɨɧɟɧɬɵ ɤɥɚɫɫɚ TBase */
}
int TBase::nw=1; /* ɂɧɢɰɢɚɥɢɡɚɰɢɹ ɫɬɚɬɢɱɟɫɤɨɣ ɤɨɦɩɨɧɟɧɬɵ
ɤɥɚɫɫɚ */
53
Ⱦɪɭɠɟɫɬɜɟɧɧɨɣ ɦɨɠɟɬ ɛɵɬɶ ɢ ɮɭɧɤɰɢɹ, ɧɟ ɹɜɥɹɸɳɚɹɫɹ ɤɨɦɩɨɧɟɧɬɨɣ ɤɚɤɨɝɨ-ɥɢɛɨ ɤɥɚɫɫɚ, ɧɚɩɪɢɦɟɪ: class XX { friend int printXX(); /* Ⱦɪɭɝɢɟ ɤɨɦɩɨɧɟɧɬɵ ɤɥɚɫɫɚ ɏɏ */ } Ɂɞɟɫɶ ɮɭɧɤɰɢɹ printXX ɢɦɟɟɬ ɞɨɫɬɭɩ ɤɨ ɜɫɟɦ ɤɨɦɩɨɧɟɧɬɚɦ ɤɥɚɫɫɚ XX, ɧɟɡɚɜɢɫɢɦɨ ɨɬ ɡɚɤɪɟɩɥɟɧɧɨɝɨ ɡɚ ɧɢɦɢ ɭɪɨɜɧɹ ɞɨɫɬɭɩɚ. ȼ ɬɟɨɪɢɢ ɨɛɴɟɤɬɧɨ-ɨɪɢɟɧɬɢɪɨɜɚɧɧɨɝɨ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɹ ɫɱɢɬɚɟɬɫɹ, ɱɬɨ ɩɪɢ ɯɨɪɨɲɨ ɫɩɪɨɟɤɬɢɪɨɜɚɧɧɨɣ ɫɢɫɬɟɦɟ ɤɥɚɫɫɨɜ ɧɟ ɞɨɥɠɧɨ ɛɵɬɶ ɧɟɨɛ- ɯɨɞɢɦɨɫɬɢ ɜ ɞɪɭɠɟɫɬɜɟɧɧɵɯ ɮɭɧɤɰɢɹɯ, ɨɞɧɚɤɨ ɜ ɪɹɞɟ ɫɥɭɱɚɟɜ ɢɯ ɢɫɩɨɥɶ- ɡɨɜɚɧɢɟ ɭɩɪɨɳɚɟɬ ɩɨɧɢɦɚɧɢɟ ɢ ɩɨɫɥɟɞɭɸɳɢɟ ɦɨɞɢɮɢɤɚɰɢɢ ɩɪɨɝɪɚɦɦɵ. 4.7. ɋɬɚɬɢɱɟɫɤɢɟ ɤɨɦɩɨɧɟɧɬɵ ɤɥɚɫɫɚ Ɉɩɢɫɚɬɟɥɶ static ɜ ɋ++ ɢɦɟɟɬ ɪɚɡɥɢɱɧɨɟ ɧɚɡɧɚɱɟɧɢɟ ɜ ɡɚɜɢɫɢɦɨɫɬɢ ɨɬ ɤɨɧɬɟɤɫɬɚ, ɜ ɤɨɬɨɪɨɦ ɨɧ ɩɪɢɦɟɧɟɧ. ɉɟɪɟɦɟɧɧɵɟ ɢ ɮɭɧɤɰɢɢ, ɨɛɴɹɜɥɟɧɧɵɟ ɜɧɟ ɤɥɚɫɫɚ ɢ ɜɧɟ ɬɟɥɚ ɮɭɧɤɰɢɢ ɫ ɨɩɢɫɚɬɟɥɟɦ static, ɢɦɟɸɬ ɨɛɥɚɫɬɶ ɞɟɣɫɬɜɢɹ, ɨɝɪɚɧɢɱɟɧɧɭɸ ɮɚɣɥɨɦ, ɜ ɤɨ- ɬɨɪɨɦ ɨɧɢ ɨɛɴɹɜɥɟɧɵ. ɉɟɪɟɦɟɧɧɵɟ, ɨɛɴɹɜɥɟɧɧɵɟ ɤɚɤ static ɜɧɭɬɪɢ ɮɭɧɤɰɢɢ, ɜɢɞɢɦɵ ɬɨɥɶ- ɤɨ ɜɧɭɬɪɢ ɷɬɨɣ ɮɭɧɤɰɢɢ, ɧɨ ɫɨɯɪɚɧɹɸɬ ɫɜɨɢ ɡɧɚɱɟɧɢɹ ɩɨɫɥɟ ɜɵɯɨɞɚ ɢɡ ɮɭɧɤɰɢɢ ɢ ɢɧɢɰɢɚɥɢɡɢɪɭɸɬɫɹ ɬɨɥɶɤɨ ɩɪɢ ɩɟɪɜɨɦ ɨɛɪɚɳɟɧɢɢ ɤ ɮɭɧɤɰɢɢ. Ʉɨɦɩɨɧɟɧɬɵ ɤɥɚɫɫɚ ɬɚɤɠɟ ɦɨɝɭɬ ɨɛɴɹɜɥɹɬɶɫɹ ɫ ɨɩɢɫɚɬɟɥɟɦ static, ɬɚɤɢɟ ɤɨɦɩɨɧɟɧɬɵ - ɞɚɧɧɵɟ ɹɜɥɹɸɬɫɹ ɨɛɳɢɦɢ ɞɥɹ ɜɫɟɯ ɷɤɡɟɦɩɥɹɪɨɜ ɨɛɴɟɤ- ɬɨɜ ɷɬɨɝɨ ɤɥɚɫɫɚ ɢ ɪɚɡɦɟɳɚɸɬɫɹ ɜ ɩɚɦɹɬɢ ɨɬɞɟɥɶɧɨ ɨɬ ɞɚɧɧɵɯ ɨɛɴɟɤɬɨɜ ɤɥɚɫɫɚ. Ⱦɨɫɬɭɩ ɤ static-ɨɦɩɨɧɟɧɬɚɦ ɤɥɚɫɫɚ ɜɨɡɦɨɠɟɧ ɩɨ ɢɦɟɧɢ, ɭɬɨɱɧɟɧ- ɧɨɦɭ ɢɦɟɧɟɦ ɤɥɚɫɫɚ (ɢɦɟɧɟɦ ɬɢɩɚ) ɢɥɢ ɢɦɟɧɟɦ ɨɛɴɟɤɬɚ ɷɬɨɝɨ ɤɥɚɫɫɚ, ɩɪɢ- ɱɟɦ ɤ static-ɤɨɦɩɨɧɟɧɬɚɦ ɤɥɚɫɫɚ ɦɨɠɧɨ ɨɛɪɚɳɚɬɶɫɹ ɞɨ ɫɨɡɞɚɧɢɹ ɷɤɡɟɦɩ- ɥɹɪɨɜ ɨɛɴɟɤɬɨɜ ɷɬɨɝɨ ɤɥɚɫɫɚ. ɋɬɚɬɢɱɟɫɤɨɟ ɞɚɧɧɨɟ-ɱɥɟɧ ɤɥɚɫɫɚ ɞɨɥɠɧɨ ɛɵɬɶ ɨɛɹɡɚɬɟɥɶɧɨ ɢɧɢɰɢɚɥɢɡɢɪɨɜɚɧɨ ɜɧɟ ɨɩɢɫɚɧɢɹ ɤɥɚɫɫɚ: class TBase //ɛɚɡɨɜɵɣ ɤɥɚɫɫ ɞɥɹ ɦɚɫɫɢɜɨɜ ɜɫɟɯ ɬɢɩɨɜ { static int nw; int size, // ɪɚɡɦɟɪ ɷɥɟɦɟɧɬɚ count, // ɬɟɤɭɳɟɟ ɱɢɫɥɨ ɷɥɟɦɟɧɬɨɜ maxCount, // ɪɚɡɦɟɪ ɜɵɞɟɥɟɧɧɨɣ ɩɚɦɹɬɢ delta; //ɩɪɢɪɚɳɟɧɢɟ ɩɚɦɹɬɢ /* Ⱦɪɭɝɢɟ ɤɨɦɩɨɧɟɧɬɵ ɤɥɚɫɫɚ TBase */ } int TBase::nw=1; /* ɂɧɢɰɢɚɥɢɡɚɰɢɹ ɫɬɚɬɢɱɟɫɤɨɣ ɤɨɦɩɨɧɟɧɬɵ ɤɥɚɫɫɚ */ 53
Страницы
- « первая
- ‹ предыдущая
- …
- 51
- 52
- 53
- 54
- 55
- …
- следующая ›
- последняя »