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

UptoLike

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

ɉɟɪɟɱɢɫɥɟɧɧɵɣ ɬɢɩ ɩɪɢɦɟɧɹɟɬɫɹ ɞɥɹ ɞɚɧɧɵɯ ɰɟɥɨɝɨ ɬɢɩɚ, ɤɨɬɨɪɵɟ
ɦɨɝɭɬ ɩɪɢɧɢɦɚɬɶ ɨɝɪɚɧɢɱɟɧɧɵɣ ɧɚɛɨɪ ɡɧɚɱɟɧɢɣ. Ʉɚɠɞɨɦɭ ɡɧɚɱɟɧɢɸ ɫɨɨɬ-
ɜɟɬɫɬɜɭɟɬ ɫɨɛɫɬɜɟɧɧɨɟ ɢɦɹ-ɢɞɟɧɬɢɮɢɤɚɬɨɪ ɢ ɰɟɥɨɟ ɱɢɫɥɨ, ɡɧɚɱɟɧɢɟ ɷɬɨɝɨ
ɢɦɟɧɢ. Ɉɛɴɹɜɥɟɧɢɟ ɩɟɪɟɱɢɫɥɟɧɧɨɝɨ ɬɢɩɚ ɫɬɪɨɢɬɫɹ ɩɨ ɫɯɟɦɟ:
enum ɢɞɟɧɬɢɮɢɤɚɬɨɪ {ɫɩɢɫɨɤ ɩɟɪɟɱɢɫɥɟɧɢɹ}
ɞɟɤɥɚɪɚɬɨɪɵ-ɢɧɢɰɢɚɥɢɡɚɬɨɪɵ;
Ɂɞɟɫɶ ɢɞɟɧɬɢɮɢɤɚɬɨɪ ɡɚɞɚɟɬ ɢɦɹ ɩɟɪɟɱɢɫɥɟɧɧɨɝɨ ɬɢɩɚ, ɫɩɢɫɨɤ ɩɟɪɟ-
ɱɢɫɥɟɧɢɹ ɫɨɫɬɨɢɬ ɢɡ ɩɟɪɟɱɢɫɥɢɬɟɥɟɣ, ɪɚɡɞɟɥɟɧɧɵɯ ɡɚɩɹɬɵɦɢ. Ʉɚɠɞɵɣ ɩɟ-
ɪɟɱɢɫɥɢɬɟɥɶ ɡɚɞɚɟɬɫɹ ɢɞɟɧɬɢɮɢɤɚɬɨɪɨɦ ɢ, ɜɨɡɦɨɠɧɨ, ɰɟɥɵɦ ɡɧɚɱɟɧɢɟɦ ɬɢ-
ɩɚ
char ɢɥɢ int, ɧɚɩɪɢɦɟɪ,
enum color {RED, GREEN, BLUE} en_color;
enum lex_type {CNST, VAR, OPER=3, FUNC};
ȿɫɥɢ ɡɧɚɱɟɧɢɟ ɩɟɪɟɱɢɫɥɢɬɟɥɹ ɧɟ ɡɚɞɚɧɨ, ɩɟɪɜɵɣ ɢɡ ɧɢɯ ɩɨɥɭɱɚɟɬ ɡɧɚ-
ɱɟɧɢɟ
0, ɚ ɤɚɠɞɵɣ ɫɥɟɞɭɸɳɢɣ - ɡɧɚɱɟɧɢɟ, ɛɨɥɶɲɟɟ ɧɚ 1. ȼɨɨɛɳɟ ɥɸɛɨɣ
ɩɟɪɟɱɢɫɥɢɬɟɥɶ ɩɨ ɭɦɨɥɱɚɧɢɸ ɢɦɟɟɬ ɡɧɚɱɟɧɢɟ ɧɚ
1 ɛɨɥɶɲɟ ɩɪɟɞɵɞɭɳɟɝɨ. ȼ
ɋɢ/ɋɢ++ ɩɪɢɧɹɬɨ ɡɚɩɢɫɵɜɚɬɶ ɢɞɟɧɬɢɮɢɤɚɬɨɪɵ ɩɟɪɟɱɢɫɥɢɬɟɥɟɣ ɩɪɨɩɢɫɧɵ-
ɦɢ ɛɭɤɜɚɦɢ. ɂɦɟɧɚ ɩɟɪɟɱɢɫɥɢɬɟɥɟɣ ɢɫɩɨɥɶɡɭɸɬɫɹ ɥɢɛɨ ɤɚɤ ɢɦɟɧɨɜɚɧɧɵɟ
ɤɨɧɫɬɚɧɬɵ, ɥɢɛɨ ɞɥɹ ɩɪɢɫɜɚɢɜɚɧɢɹ ɩɟɪɟɦɟɧɧɵɦ ɩɟɪɟɱɢɫɥɢɦɨɝɨ ɬɢɩɚ.
ȼɋɢ/ɋɢ++ ɞɥɹ ɫɫɵɥɨɤ ɧɚ ɩɟɪɟɦɟɧɧɭɸ ɬɨɝɨ ɢɥɢ ɢɧɨɝɨ ɬɢɩɚ ɫɥɭɠɚɬ
ɭɤɚɡɚɬɟɥɢ. ɍɤɚɡɚɬɟɥɶ - ɷɬɨ ɬɢɩ ɞɚɧɧɵɯ, ɡɧɚɱɟɧɢɹɦɢ ɤɨɬɨɪɵɯ ɹɜɥɹɸɬɫɹ ɚɞ-
ɪɟɫɚ ɞɪɭɝɢɯ ɞɚɧɧɵɯ. ɉɪɢ ɨɛɴɹɜɥɟɧɢɢ ɭɤɚɡɚɬɟɥɹ ɩɟɪɟɞ ɢɞɟɧɬɢɮɢɤɚɬɨɪɨɦ
ɡɚɩɢɫɵɜɚɟɬɫɹ ɡɧɚɤ
*. ɍɤɚɡɚɬɟɥɶ ɦɨɠɟɬ ɢɧɢɰɢɚɥɢɡɢɪɨɜɚɬɶɫɹ ɚɞɪɟɫɨɦ ɬɨɝɨ
ɢɥɢ ɢɧɨɝɨ ɞɚɧɧɨɝɨ, ɞɥɹ ɩɨɥɭɱɟɧɢɹ ɚɞɪɟɫɚ ɫɥɭɠɢɬ ɨɩɟɪɚɰɢɹ
& (ɚɦɩɟɪɫɟɧɞ):
double y;
double *px, *py=&y;
Ⱦɥɹ ɭɤɚɡɚɬɟɥɟɣ ɨɩɪɟɞɟɥɟɧɵ ɨɩɟɪɚɰɢɢ ɫɪɚɜɧɟɧɢɹ, ɫɥɨɠɟɧɢɹ ɭɤɚɡɚɬɟɥɹ ɫ
ɰɟɥɵɦ ɱɢɫɥɨɦ, ɜɵɱɢɬɚɧɢɹ ɞɜɭɯ ɭɤɚɡɚɬɟɥɟɣ, ɚ ɬɚɤɠɟ ɨɩɟɪɚɰɢɹ ɢɧɞɟɤɫɢɪɨ-
ɜɚɧɢɹ (ɨɩɟɪɚɰɢɹ «
[]»).
Ⱦɥɹ ɨɛɪɚɳɟɧɢɹ ɤ ɩɟɪɟɦɟɧɧɨɣ ɩɨ ɭɤɚɡɚɬɟɥɸ ɜɵɩɨɥɧɹɟɬɫɹ ɨɩɟɪɚɰɢɹ ɪɚ-
ɡɵɦɟɧɨɜɚɧɢɹ, ɨɛɨɡɧɚɱɚɟɦɚɹ ɡɧɚɤɨɦ
* (ɡɜɟɡɞɨɱɤɚ), ɧɚɩɪɢɦɟɪ,
*py=7.5;
ɉɪɢ ɨɛɴɹɜɥɟɧɢɢ ɭɤɚɡɚɬɟɥɹ ɦɨɠɟɬ ɢɫɩɨɥɶɡɨɜɚɬɶɫɹ ɨɩɢɫɚɬɟɥɶ const,
ɧɚɩɪɢɦɟɪ,
const int cc=20;
const int *pc=&cc; // Ɇɨɠɧɨ ɢɧɢɰɢɚɥɢɡɢɪɨɜɚɬɶ
// ɚɞɪɟɫɨɦ ɤɨɧɫɬɚɧɬɵ
double *const delta=0.001; // ɍɤɚɡɚɬɟɥɶ-ɤɨɧɫɬɚɧɬɚ
Ʉɪɨɦɟ ɨɛɵɱɧɵɯ ɩɟɪɟɦɟɧɧɵɯ ɢ ɭɤɚɡɚɬɟɥɟɣ ɜ ɋɢ++ ɢɦɟɟɬɫɹ ɬɢɩ «ɫɫɵɥ-
ɤɚ ɧɚ ɩɟɪɟɦɟɧɧɭɸ», ɡɚɞɚɸɳɢɣ ɞɥɹ ɩɟɪɟɦɟɧɧɨɣ ɞɨɩɨɥɧɢɬɟɥɶɧɨɟ ɢɦɹ (ɩɫɟɜ-
ɞɨɧɢɦ). ȼɧɭɬɪɟɧɧɟɟ ɩɪɟɞɫɬɚɜɥɟɧɢɟ ɫɫɵɥɤɢ ɹɜɥɹɟɬɫɹ ɬɚɤɢɦ ɠɟ, ɤɚɤ ɞɥɹ ɭɤɚ-
ɡɚɬɟɥɹ, ɬɨ ɟɫɬɶ ɜ ɜɢɞɟ ɚɞɪɟɫɚ ɩɟɪɟɦɟɧɧɨɣ, ɧɨ ɨɛɪɚɳɟɧɢɟ ɤ ɩɟɪɟɦɟɧɧɨɣ ɩɨ
ɫɫɵɥɤɟ ɡɚɩɢɫɵɜɚɟɬɫɹ ɜ ɬɨɣ ɠɟ ɮɨɪɦɟ, ɱɬɨ ɢ ɨɛɪɚɳɟɧɢɟ ɩɨ ɨɫɧɨɜɧɨɦɭ ɢɦɟ-
ɧɢ. ɉɟɪɟɦɟɧɧɚɹ ɬɢɩɚ «ɫɫɵɥɤɚ» ɜɫɟɝɞɚ ɢɧɢɰɢɚɥɢɡɢɪɭɟɬɫɹ ɡɚɞɚɧɢɟɦ ɢɦɟɧɢ
12
    ɉɟɪɟɱɢɫɥɟɧɧɵɣ ɬɢɩ ɩɪɢɦɟɧɹɟɬɫɹ ɞɥɹ ɞɚɧɧɵɯ ɰɟɥɨɝɨ ɬɢɩɚ, ɤɨɬɨɪɵɟ
ɦɨɝɭɬ ɩɪɢɧɢɦɚɬɶ ɨɝɪɚɧɢɱɟɧɧɵɣ ɧɚɛɨɪ ɡɧɚɱɟɧɢɣ. Ʉɚɠɞɨɦɭ ɡɧɚɱɟɧɢɸ ɫɨɨɬ-
ɜɟɬɫɬɜɭɟɬ ɫɨɛɫɬɜɟɧɧɨɟ ɢɦɹ-ɢɞɟɧɬɢɮɢɤɚɬɨɪ ɢ ɰɟɥɨɟ ɱɢɫɥɨ, ɡɧɚɱɟɧɢɟ ɷɬɨɝɨ
ɢɦɟɧɢ. Ɉɛɴɹɜɥɟɧɢɟ ɩɟɪɟɱɢɫɥɟɧɧɨɝɨ ɬɢɩɚ ɫɬɪɨɢɬɫɹ ɩɨ ɫɯɟɦɟ:
     enum ɢɞɟɧɬɢɮɢɤɚɬɨɪ {ɫɩɢɫɨɤ ɩɟɪɟɱɢɫɥɟɧɢɹ}
                        ɞɟɤɥɚɪɚɬɨɪɵ-ɢɧɢɰɢɚɥɢɡɚɬɨɪɵ;
    Ɂɞɟɫɶ ɢɞɟɧɬɢɮɢɤɚɬɨɪ ɡɚɞɚɟɬ ɢɦɹ ɩɟɪɟɱɢɫɥɟɧɧɨɝɨ ɬɢɩɚ, ɫɩɢɫɨɤ ɩɟɪɟ-
ɱɢɫɥɟɧɢɹ ɫɨɫɬɨɢɬ ɢɡ ɩɟɪɟɱɢɫɥɢɬɟɥɟɣ, ɪɚɡɞɟɥɟɧɧɵɯ ɡɚɩɹɬɵɦɢ. Ʉɚɠɞɵɣ ɩɟ-
ɪɟɱɢɫɥɢɬɟɥɶ ɡɚɞɚɟɬɫɹ ɢɞɟɧɬɢɮɢɤɚɬɨɪɨɦ ɢ, ɜɨɡɦɨɠɧɨ, ɰɟɥɵɦ ɡɧɚɱɟɧɢɟɦ ɬɢ-
ɩɚ char ɢɥɢ int, ɧɚɩɪɢɦɟɪ,
     enum color {RED, GREEN, BLUE} en_color;
     enum lex_type {CNST, VAR, OPER=3, FUNC};
    ȿɫɥɢ ɡɧɚɱɟɧɢɟ ɩɟɪɟɱɢɫɥɢɬɟɥɹ ɧɟ ɡɚɞɚɧɨ, ɩɟɪɜɵɣ ɢɡ ɧɢɯ ɩɨɥɭɱɚɟɬ ɡɧɚ-
ɱɟɧɢɟ 0, ɚ ɤɚɠɞɵɣ ɫɥɟɞɭɸɳɢɣ - ɡɧɚɱɟɧɢɟ, ɛɨɥɶɲɟɟ ɧɚ 1. ȼɨɨɛɳɟ ɥɸɛɨɣ
ɩɟɪɟɱɢɫɥɢɬɟɥɶ ɩɨ ɭɦɨɥɱɚɧɢɸ ɢɦɟɟɬ ɡɧɚɱɟɧɢɟ ɧɚ 1 ɛɨɥɶɲɟ ɩɪɟɞɵɞɭɳɟɝɨ. ȼ
ɋɢ/ɋɢ++ ɩɪɢɧɹɬɨ ɡɚɩɢɫɵɜɚɬɶ ɢɞɟɧɬɢɮɢɤɚɬɨɪɵ ɩɟɪɟɱɢɫɥɢɬɟɥɟɣ ɩɪɨɩɢɫɧɵ-
ɦɢ ɛɭɤɜɚɦɢ. ɂɦɟɧɚ ɩɟɪɟɱɢɫɥɢɬɟɥɟɣ ɢɫɩɨɥɶɡɭɸɬɫɹ ɥɢɛɨ ɤɚɤ ɢɦɟɧɨɜɚɧɧɵɟ
ɤɨɧɫɬɚɧɬɵ, ɥɢɛɨ ɞɥɹ ɩɪɢɫɜɚɢɜɚɧɢɹ ɩɟɪɟɦɟɧɧɵɦ ɩɟɪɟɱɢɫɥɢɦɨɝɨ ɬɢɩɚ.
    ȼ ɋɢ/ɋɢ++ ɞɥɹ ɫɫɵɥɨɤ ɧɚ ɩɟɪɟɦɟɧɧɭɸ ɬɨɝɨ ɢɥɢ ɢɧɨɝɨ ɬɢɩɚ ɫɥɭɠɚɬ
ɭɤɚɡɚɬɟɥɢ. ɍɤɚɡɚɬɟɥɶ - ɷɬɨ ɬɢɩ ɞɚɧɧɵɯ, ɡɧɚɱɟɧɢɹɦɢ ɤɨɬɨɪɵɯ ɹɜɥɹɸɬɫɹ ɚɞ-
ɪɟɫɚ ɞɪɭɝɢɯ ɞɚɧɧɵɯ. ɉɪɢ ɨɛɴɹɜɥɟɧɢɢ ɭɤɚɡɚɬɟɥɹ ɩɟɪɟɞ ɢɞɟɧɬɢɮɢɤɚɬɨɪɨɦ
ɡɚɩɢɫɵɜɚɟɬɫɹ ɡɧɚɤ *. ɍɤɚɡɚɬɟɥɶ ɦɨɠɟɬ ɢɧɢɰɢɚɥɢɡɢɪɨɜɚɬɶɫɹ ɚɞɪɟɫɨɦ ɬɨɝɨ
ɢɥɢ ɢɧɨɝɨ ɞɚɧɧɨɝɨ, ɞɥɹ ɩɨɥɭɱɟɧɢɹ ɚɞɪɟɫɚ ɫɥɭɠɢɬ ɨɩɟɪɚɰɢɹ & (ɚɦɩɟɪɫɟɧɞ):
     double y;
     double *px, *py=&y;
    Ⱦɥɹ ɭɤɚɡɚɬɟɥɟɣ ɨɩɪɟɞɟɥɟɧɵ ɨɩɟɪɚɰɢɢ ɫɪɚɜɧɟɧɢɹ, ɫɥɨɠɟɧɢɹ ɭɤɚɡɚɬɟɥɹ ɫ
ɰɟɥɵɦ ɱɢɫɥɨɦ, ɜɵɱɢɬɚɧɢɹ ɞɜɭɯ ɭɤɚɡɚɬɟɥɟɣ, ɚ ɬɚɤɠɟ ɨɩɟɪɚɰɢɹ ɢɧɞɟɤɫɢɪɨ-
ɜɚɧɢɹ (ɨɩɟɪɚɰɢɹ «[]»).
    Ⱦɥɹ ɨɛɪɚɳɟɧɢɹ ɤ ɩɟɪɟɦɟɧɧɨɣ ɩɨ ɭɤɚɡɚɬɟɥɸ ɜɵɩɨɥɧɹɟɬɫɹ ɨɩɟɪɚɰɢɹ ɪɚ-
ɡɵɦɟɧɨɜɚɧɢɹ, ɨɛɨɡɧɚɱɚɟɦɚɹ ɡɧɚɤɨɦ * (ɡɜɟɡɞɨɱɤɚ), ɧɚɩɪɢɦɟɪ,
     *py=7.5;
    ɉɪɢ ɨɛɴɹɜɥɟɧɢɢ ɭɤɚɡɚɬɟɥɹ ɦɨɠɟɬ ɢɫɩɨɥɶɡɨɜɚɬɶɫɹ ɨɩɢɫɚɬɟɥɶ const,
ɧɚɩɪɢɦɟɪ,
     const int cc=20;
     const int *pc=&cc;                // Ɇɨɠɧɨ ɢɧɢɰɢɚɥɢɡɢɪɨɜɚɬɶ
                                       // ɚɞɪɟɫɨɦ ɤɨɧɫɬɚɧɬɵ
     double   *const delta=0.001;      // ɍɤɚɡɚɬɟɥɶ-ɤɨɧɫɬɚɧɬɚ
    Ʉɪɨɦɟ ɨɛɵɱɧɵɯ ɩɟɪɟɦɟɧɧɵɯ ɢ ɭɤɚɡɚɬɟɥɟɣ ɜ ɋɢ++ ɢɦɟɟɬɫɹ ɬɢɩ «ɫɫɵɥ-
ɤɚ ɧɚ ɩɟɪɟɦɟɧɧɭɸ», ɡɚɞɚɸɳɢɣ ɞɥɹ ɩɟɪɟɦɟɧɧɨɣ ɞɨɩɨɥɧɢɬɟɥɶɧɨɟ ɢɦɹ (ɩɫɟɜ-
ɞɨɧɢɦ). ȼɧɭɬɪɟɧɧɟɟ ɩɪɟɞɫɬɚɜɥɟɧɢɟ ɫɫɵɥɤɢ ɹɜɥɹɟɬɫɹ ɬɚɤɢɦ ɠɟ, ɤɚɤ ɞɥɹ ɭɤɚ-
ɡɚɬɟɥɹ, ɬɨ ɟɫɬɶ ɜ ɜɢɞɟ ɚɞɪɟɫɚ ɩɟɪɟɦɟɧɧɨɣ, ɧɨ ɨɛɪɚɳɟɧɢɟ ɤ ɩɟɪɟɦɟɧɧɨɣ ɩɨ
ɫɫɵɥɤɟ ɡɚɩɢɫɵɜɚɟɬɫɹ ɜ ɬɨɣ ɠɟ ɮɨɪɦɟ, ɱɬɨ ɢ ɨɛɪɚɳɟɧɢɟ ɩɨ ɨɫɧɨɜɧɨɦɭ ɢɦɟ-
ɧɢ. ɉɟɪɟɦɟɧɧɚɹ ɬɢɩɚ «ɫɫɵɥɤɚ» ɜɫɟɝɞɚ ɢɧɢɰɢɚɥɢɡɢɪɭɟɬɫɹ ɡɚɞɚɧɢɟɦ ɢɦɟɧɢ


                                  12