Основы языка программирования C++ с применением объектно-ориентированного программирования. Чернышов М.К. - 41 стр.

UptoLike

Составители: 

ɬɟɤɫɬ_3
#endif
ȼ ɮɚɣɥɚɯ ɡɚɝɨɥɨɜɤɨɜ ɞɥɹ ɩɪɟɞɨɬɜɪɚɳɟɧɢɹ ɦɧɨɝɨɤɪɚɬɧɨɝɨ ɜɤɥɸɱɟɧɢɹ ɨɞɧɨ-
ɝɨ ɢ ɬɨɝɨ ɠɟ ɡɚɝɨɥɨɜɤɚ ɜ ɩɪɨɝɪɚɦɦɭ ɨɛɵɱɧɨ ɩɪɢɫɭɬɫɬɜɭɟɬ ɬɟɤɫɬ ɜɢɞɚ:
#if !defined(_DEFS_H)
#define _DEFS_H
/* Ɍɟɤɫɬ ɨɛɴɹɜɥɹɟɦɵɯ ɡɚɝɨɥɨɜɤɨɜ */
...
#endif /* Ʉɨɧɟɰ _DEFS_H */
4. Ɉɛɴɟɤɬɧɨ-ɨɪɢɟɧɬɢɪɨɜɚɧɧɵɟ ɫɪɟɞɫɬɜɚ C++
4.1. Ɉɛɴɟɤɬɧɵɟ ɬɢɩɵ ɞɚɧɧɵɯ
Ɉɛɴɟɤɬɧɵɟ ɬɢɩɵ ɞɚɧɧɵɯɷɬɨ ɚɝɪɟɝɚɬɧɵɟ ɬɢɩɵ, ɩɨɥɧɨɫɬɶɸ ɨɩɪɟɞɟ-
ɥɹɟɦɵɟ ɩɪɨɝɪɚɦɦɢɫɬɨɦ, ɨɩɢɫɚɧɢɟ ɨɛɴɟɤɬɧɨɝɨ ɬɢɩɚ ɞɨɥɠɧɨ ɫɨɞɟɪɠɚɬɶ
ɤɨɦɩɨɧɟɧɬɵ-ɞɚɧɧɵɟ, ɨɩɪɟɞɟɥɹɸɳɢɟ ɨɛɥɚɫɬɶ ɜɨɡɦɨɠɧɵɯ ɡɧɚɱɟɧɢɣ ɩɟɪɟ-
ɦɟɧɧɵɯ ɷɬɨɝɨ ɬɢɩɚ, ɢ ɨɩɢɫɚɧɢɟ ɨɩɟɪɚɰɢɣ, ɞɨɩɭɫɬɢɦɵɯ ɧɚɞ ɩɟɪɟɦɟɧɧɵɦɢ
ɷɬɨɝɨ ɬɢɩɚ ɢ ɤɨɦɩɨɧɟɧɬɚɦɢ-ɞɚɧɧɵɦɢ, ɫɨɫɬɚɜɥɹɸɳɢɦɢ ɩɟɪɟɦɟɧɧɭɸ. Ⱦɥɹ
ɫɨɯɪɚɧɟɧɢɹ ɫɨɜɦɟɫɬɢɦɨɫɬɢ ɫ ɩɪɨɝɪɚɦɦɚɦɢ ɧɚ ɋɢ ɫɢɧɬɚɤɫɢɫ ɨɩɢɫɚɧɢɹ ɨɛɴ-
ɟɤɬɧɨɝɨ ɬɢɩɚ ɜ ɋɢ++ ɜɵɛɪɚɧ ɩɨɞɨɛɧɵɦ ɨɩɢɫɚɧɢɸ ɫɬɪɭɤɬɭɪɧɨɝɨ ɬɢɩɚ ɢɥɢ
ɬɢɩɚ ɨɛɴɟɞɢɧɟɧɢɹ ɜ ɋɢ. ȼ ɫɭɳɧɨɫɬɢ ɫɬɪɭɤɬɭɪɵ ɢ ɨɛɴɟɞɢɧɟɧɢɹ ɜ ɋɢ++ ɪɚɫ-
ɫɦɚɬɪɢɜɚɸɬɫɹ ɤɚɤ ɜɚɪɢɚɧɬɵ ɨɛɴɟɤɬɧɵɯ ɬɢɩɨɜ. ɂɦɟɸɬɫɹ ɬɪɢ ɜɚɪɢɚɧɬɚ ɨɛɴ-
ɟɤɬɧɵɯ ɬɢɩɨɜ: ɫɬɪɭɤɬɭɪɚ (
struct), ɨɛɴɟɞɢɧɟɧɢɟ (union) ɢ ɤɥɚɫɫ (class),
ɪɚɡɥɢɱɚɸɳɢɟɫɹ ɜɨɡɦɨɠɧɨɫɬɹɦɢ ɞɨɫɬɭɩɚ ɤ ɤɨɦɩɨɧɟɧɬɚɦ ɬɢɩɚ. ȼ ɞɚɥɶɧɟɣ-
ɲɟɦ ɞɥɹ ɤɪɚɬɤɨɫɬɢ ɜɫɟ ɜɚɪɢɚɧɬɵ ɨɛɴɟɤɬɧɵɯ ɬɢɩɨɜ ɛɭɞɟɦ ɧɚɡɵɜɚɬɶ ɤɥɚɫɫɚ-
ɦɢ. Ɉɩɢɫɚɧɢɟ ɨɛɴɟɤɬɧɨɝɨ ɬɢɩɚ ɫɬɪɨɢɬɫɹ ɩɨ ɫɯɟɦɟ:
ɜɚɪɢɚɧɬ_ɬɢɩɚ ɢɦɹ_ɬɢɩɚ: ɫɩɢɫɨɤ_ɛɚɡɨɜɵɯ_ɤɥɚɫɫɨɜ
{ɤɨɦɩɨɧɟɧɬɵ (ɱɥɟɧɵ) ɤɥɚɫɫɚ}
Ʉɨɦɩɨɧɟɧɬɚɦɢ ɤɥɚɫɫɚ ɦɨɝɭɬ ɛɵɬɶ ɤɨɦɩɨɧɟɧɬɵ-ɞɚɧɧɵɟ ɢ ɤɨɦɩɨɧɟɧɬɵ-
ɮɭɧɤɰɢɢ. Ʉɨɦɩɨɧɟɧɬɵ-ɮɭɧɤɰɢɢ ɩɪɟɞɧɚɡɧɚɱɟɧɵ ɞɥɹ ɜɵɩɨɥɧɟɧɢɹ ɨɩɟɪɚɰɢɣ
ɧɚɞ ɨɛɴɟɤɬɧɵɦɢ ɞɚɧɧɵɦɢ, ɢɯ ɱɚɫɬɨ ɧɚɡɵɜɚɸɬ ɦɟɬɨɞɚɦɢ ɤɥɚɫɫɚ. Ʉɨɦɩɨ-
ɧɟɧɬɵ-ɞɚɧɧɵɟ ɧɚɡɵɜɚɸɬ ɫɜɨɣɫɬɜɚɦɢ ɤɥɚɫɫɚ.
Ⱦɥɹ ɤɚɠɞɨɝɨ ɤɨɦɩɨɧɟɧɬɚ ɤɥɚɫɫɚ ɭɫɬɚɧɚɜɥɢɜɚɟɬɫɹ ɭɪɨɜɟɧɶ ɞɨɫɬɭɩɚ ɥɢ-
ɛɨ ɹɜɧɨ, ɭɤɚɡɚɧɢɟɦ ɭɪɨɜɧɹ ɞɨɫɬɭɩɚ ɨɞɧɢɦ ɢɡ ɤɥɸɱɟɜɵɯ ɫɥɨɜ
public,
protected ɢɥɢ private ɫ ɞɜɨɟɬɨɱɢɟɦ, ɥɢɛɨ ɧɟɹɜɧɨ, ɩɨ ɭɦɨɥɱɚɧɢɸ. ɍɤɚɡɚ-
ɧɢɟ ɭɪɨɜɧɹ ɞɨɫɬɭɩɚ ɨɬɧɨɫɢɬɫɹ ɤɨ ɜɫɟɦ ɩɨɫɥɟɞɭɸɳɢɦ ɤɨɦɩɨɧɟɧɬɚɦ ɤɥɚɫɫɚ,
ɩɨɤɚ ɧɟ ɜɫɬɪɟɬɢɬɫɹ ɭɤɚɡɚɧɢɟ ɞɪɭɝɨɝɨ ɭɪɨɜɧɹ ɞɨɫɬɭɩɚ. ɍɪɨɜɟɧɶ ɞɨɫɬɭɩɚ
public ɪɚɡɪɟɲɚɟɬ ɞɨɫɬɭɩ ɤ ɤɨɦɩɨɧɟɧɬɚɦ ɤɥɚɫɫɚ ɢɡ ɥɸɛɨɝɨ ɦɟɫɬɚ ɩɪɨɝɪɚɦ-
ɦɵ, ɜ ɤɨɬɨɪɨɦ ɢɡɜɟɫɬɧɚ ɩɟɪɟɦɟɧɧɚɹ ɷɬɨɝɨ ɤɥɚɫɫɚ. ɍɪɨɜɟɧɶ ɞɨɫɬɭɩɚ
private
ɪɚɡɪɟɲɚɟɬ ɞɨɫɬɭɩ ɤ ɤɨɦɩɨɧɟɧɬɚɦ ɤɥɚɫɫɚ ɬɨɥɶɤɨ ɢɡ ɦɟɬɨɞɨɜ ɷɬɨɝɨ ɤɥɚɫɫɚ.
ɍɪɨɜɟɧɶ ɞɨɫɬɭɩɚ
protected ɢɦɟɟɬ ɫɦɵɫɥ ɬɨɥɶɤɨ ɜ ɢɟɪɚɪɯɢɱɟɫɤɨɣ ɫɢɫɬɟɦɟ
41
     ɬɟɤɫɬ_3

     #endif
ȼ ɮɚɣɥɚɯ ɡɚɝɨɥɨɜɤɨɜ ɞɥɹ ɩɪɟɞɨɬɜɪɚɳɟɧɢɹ ɦɧɨɝɨɤɪɚɬɧɨɝɨ ɜɤɥɸɱɟɧɢɹ ɨɞɧɨ-
ɝɨ ɢ ɬɨɝɨ ɠɟ ɡɚɝɨɥɨɜɤɚ ɜ ɩɪɨɝɪɚɦɦɭ ɨɛɵɱɧɨ ɩɪɢɫɭɬɫɬɜɭɟɬ ɬɟɤɫɬ ɜɢɞɚ:
     #if !defined(_DEFS_H)
     #define _DEFS_H
     /* Ɍɟɤɫɬ ɨɛɴɹɜɥɹɟɦɵɯ ɡɚɝɨɥɨɜɤɨɜ */
     ...
     #endif /* Ʉɨɧɟɰ _DEFS_H */


4. Ɉɛɴɟɤɬɧɨ-ɨɪɢɟɧɬɢɪɨɜɚɧɧɵɟ ɫɪɟɞɫɬɜɚ C++
4.1. Ɉɛɴɟɤɬɧɵɟ ɬɢɩɵ ɞɚɧɧɵɯ

    Ɉɛɴɟɤɬɧɵɟ ɬɢɩɵ ɞɚɧɧɵɯ – ɷɬɨ ɚɝɪɟɝɚɬɧɵɟ ɬɢɩɵ, ɩɨɥɧɨɫɬɶɸ ɨɩɪɟɞɟ-
ɥɹɟɦɵɟ ɩɪɨɝɪɚɦɦɢɫɬɨɦ, ɨɩɢɫɚɧɢɟ ɨɛɴɟɤɬɧɨɝɨ ɬɢɩɚ ɞɨɥɠɧɨ ɫɨɞɟɪɠɚɬɶ
ɤɨɦɩɨɧɟɧɬɵ-ɞɚɧɧɵɟ, ɨɩɪɟɞɟɥɹɸɳɢɟ ɨɛɥɚɫɬɶ ɜɨɡɦɨɠɧɵɯ ɡɧɚɱɟɧɢɣ ɩɟɪɟ-
ɦɟɧɧɵɯ ɷɬɨɝɨ ɬɢɩɚ, ɢ ɨɩɢɫɚɧɢɟ ɨɩɟɪɚɰɢɣ, ɞɨɩɭɫɬɢɦɵɯ ɧɚɞ ɩɟɪɟɦɟɧɧɵɦɢ
ɷɬɨɝɨ ɬɢɩɚ ɢ ɤɨɦɩɨɧɟɧɬɚɦɢ-ɞɚɧɧɵɦɢ, ɫɨɫɬɚɜɥɹɸɳɢɦɢ ɩɟɪɟɦɟɧɧɭɸ. Ⱦɥɹ
ɫɨɯɪɚɧɟɧɢɹ ɫɨɜɦɟɫɬɢɦɨɫɬɢ ɫ ɩɪɨɝɪɚɦɦɚɦɢ ɧɚ ɋɢ ɫɢɧɬɚɤɫɢɫ ɨɩɢɫɚɧɢɹ ɨɛɴ-
ɟɤɬɧɨɝɨ ɬɢɩɚ ɜ ɋɢ++ ɜɵɛɪɚɧ ɩɨɞɨɛɧɵɦ ɨɩɢɫɚɧɢɸ ɫɬɪɭɤɬɭɪɧɨɝɨ ɬɢɩɚ ɢɥɢ
ɬɢɩɚ ɨɛɴɟɞɢɧɟɧɢɹ ɜ ɋɢ. ȼ ɫɭɳɧɨɫɬɢ ɫɬɪɭɤɬɭɪɵ ɢ ɨɛɴɟɞɢɧɟɧɢɹ ɜ ɋɢ++ ɪɚɫ-
ɫɦɚɬɪɢɜɚɸɬɫɹ ɤɚɤ ɜɚɪɢɚɧɬɵ ɨɛɴɟɤɬɧɵɯ ɬɢɩɨɜ. ɂɦɟɸɬɫɹ ɬɪɢ ɜɚɪɢɚɧɬɚ ɨɛɴ-
ɟɤɬɧɵɯ ɬɢɩɨɜ: ɫɬɪɭɤɬɭɪɚ (struct), ɨɛɴɟɞɢɧɟɧɢɟ (union) ɢ ɤɥɚɫɫ (class),
ɪɚɡɥɢɱɚɸɳɢɟɫɹ ɜɨɡɦɨɠɧɨɫɬɹɦɢ ɞɨɫɬɭɩɚ ɤ ɤɨɦɩɨɧɟɧɬɚɦ ɬɢɩɚ. ȼ ɞɚɥɶɧɟɣ-
ɲɟɦ ɞɥɹ ɤɪɚɬɤɨɫɬɢ ɜɫɟ ɜɚɪɢɚɧɬɵ ɨɛɴɟɤɬɧɵɯ ɬɢɩɨɜ ɛɭɞɟɦ ɧɚɡɵɜɚɬɶ ɤɥɚɫɫɚ-
ɦɢ. Ɉɩɢɫɚɧɢɟ ɨɛɴɟɤɬɧɨɝɨ ɬɢɩɚ ɫɬɪɨɢɬɫɹ ɩɨ ɫɯɟɦɟ:
     ɜɚɪɢɚɧɬ_ɬɢɩɚ ɢɦɹ_ɬɢɩɚ: ɫɩɢɫɨɤ_ɛɚɡɨɜɵɯ_ɤɥɚɫɫɨɜ
        {ɤɨɦɩɨɧɟɧɬɵ (ɱɥɟɧɵ) ɤɥɚɫɫɚ}
    Ʉɨɦɩɨɧɟɧɬɚɦɢ ɤɥɚɫɫɚ ɦɨɝɭɬ ɛɵɬɶ ɤɨɦɩɨɧɟɧɬɵ-ɞɚɧɧɵɟ ɢ ɤɨɦɩɨɧɟɧɬɵ-
ɮɭɧɤɰɢɢ. Ʉɨɦɩɨɧɟɧɬɵ-ɮɭɧɤɰɢɢ ɩɪɟɞɧɚɡɧɚɱɟɧɵ ɞɥɹ ɜɵɩɨɥɧɟɧɢɹ ɨɩɟɪɚɰɢɣ
ɧɚɞ ɨɛɴɟɤɬɧɵɦɢ ɞɚɧɧɵɦɢ, ɢɯ ɱɚɫɬɨ ɧɚɡɵɜɚɸɬ ɦɟɬɨɞɚɦɢ ɤɥɚɫɫɚ. Ʉɨɦɩɨ-
ɧɟɧɬɵ-ɞɚɧɧɵɟ ɧɚɡɵɜɚɸɬ ɫɜɨɣɫɬɜɚɦɢ ɤɥɚɫɫɚ.
    Ⱦɥɹ ɤɚɠɞɨɝɨ ɤɨɦɩɨɧɟɧɬɚ ɤɥɚɫɫɚ ɭɫɬɚɧɚɜɥɢɜɚɟɬɫɹ ɭɪɨɜɟɧɶ ɞɨɫɬɭɩɚ ɥɢ-
ɛɨ ɹɜɧɨ, ɭɤɚɡɚɧɢɟɦ ɭɪɨɜɧɹ ɞɨɫɬɭɩɚ ɨɞɧɢɦ ɢɡ ɤɥɸɱɟɜɵɯ ɫɥɨɜ public,
protected ɢɥɢ private ɫ ɞɜɨɟɬɨɱɢɟɦ, ɥɢɛɨ ɧɟɹɜɧɨ, ɩɨ ɭɦɨɥɱɚɧɢɸ. ɍɤɚɡɚ-
ɧɢɟ ɭɪɨɜɧɹ ɞɨɫɬɭɩɚ ɨɬɧɨɫɢɬɫɹ ɤɨ ɜɫɟɦ ɩɨɫɥɟɞɭɸɳɢɦ ɤɨɦɩɨɧɟɧɬɚɦ ɤɥɚɫɫɚ,
ɩɨɤɚ ɧɟ ɜɫɬɪɟɬɢɬɫɹ ɭɤɚɡɚɧɢɟ ɞɪɭɝɨɝɨ ɭɪɨɜɧɹ ɞɨɫɬɭɩɚ. ɍɪɨɜɟɧɶ ɞɨɫɬɭɩɚ
public ɪɚɡɪɟɲɚɟɬ ɞɨɫɬɭɩ ɤ ɤɨɦɩɨɧɟɧɬɚɦ ɤɥɚɫɫɚ ɢɡ ɥɸɛɨɝɨ ɦɟɫɬɚ ɩɪɨɝɪɚɦ-
ɦɵ, ɜ ɤɨɬɨɪɨɦ ɢɡɜɟɫɬɧɚ ɩɟɪɟɦɟɧɧɚɹ ɷɬɨɝɨ ɤɥɚɫɫɚ. ɍɪɨɜɟɧɶ ɞɨɫɬɭɩɚ private
ɪɚɡɪɟɲɚɟɬ ɞɨɫɬɭɩ ɤ ɤɨɦɩɨɧɟɧɬɚɦ ɤɥɚɫɫɚ ɬɨɥɶɤɨ ɢɡ ɦɟɬɨɞɨɜ ɷɬɨɝɨ ɤɥɚɫɫɚ.
ɍɪɨɜɟɧɶ ɞɨɫɬɭɩɚ protected ɢɦɟɟɬ ɫɦɵɫɥ ɬɨɥɶɤɨ ɜ ɢɟɪɚɪɯɢɱɟɫɤɨɣ ɫɢɫɬɟɦɟ

                                  41