ВУЗ:
Составители:
Рубрика:
Ⱦɪɭɠɟɫɬɜɟɧɧɨɣ ɦɨɠɟɬ ɛɵɬɶ ɢ ɮɭɧɤɰɢɹ, ɧɟ ɹɜɥɹɸɳɚɹɫɹ ɤɨɦɩɨɧɟɧɬɨɣ
ɤɚɤɨɝɨ-ɥɢɛɨ ɤɥɚɫɫɚ, ɧɚɩɪɢɦɟɪ:
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
- …
- следующая ›
- последняя »
