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

UptoLike

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

ɨɛɴɹɜɢɬɶ ɢɦɹ ɫɬɪɭɤɬɭɪɧɨɝɨ ɬɢɩɚ MyStruct, ɭɤɚɡɚɬɟɥɶ ɧɚ ɷɬɨɬ ɬɢɩ
PMyStruct ɢ ɬɢɩ ɫɫɵɥɤɢ ɧɚ ɧɟɝɨ RMyStruct, ɬɨ ɟɫɬɶ ɩɨɥɭɱɢɬɶ ɜ ɜɵɯɨɞɧɨɦ
ɬɟɤɫɬɟ ɫɬɪɨɱɤɢ
struct MyStruct;
typedef MyStruct *PMyStruct;
typedef MyStruct &RMystruct;
3.4. ɍɫɥɨɜɧɚɹ ɤɨɦɩɢɥɹɰɢɹ
Ⱦɢɪɟɤɬɢɜɵ ɩɪɟɩɪɨɰɟɫɫɨɪɚ #if, #else, #endif ɢ #elif ɩɨɡɜɨɥɹɸɬ, ɜ
ɡɚɜɢɫɢɦɨɫɬɢ ɨɬ ɪɟɡɭɥɶɬɚɬɨɜ ɩɪɨɜɟɪɤɢ ɧɟɤɨɬɨɪɵɯ ɭɫɥɨɜɢɣ, ɜɤɥɸɱɚɬɶ ɜ ɩɪɨ-
ɝɪɚɦɦɭ ɨɞɢɧ ɢɡ ɧɟɫɤɨɥɶɤɢɯ ɜɚɪɢɚɧɬɨɜ ɬɟɤɫɬɚ:
#if ɩɪɟɩɪɨɰɟɫɫɨɪɧɨɟ_ɭɫɥɨɜɢɟ
ɬɟɤɫɬ 1
# else
ɬɟɤɫɬ 2
#endif
ɞɚɥɶɧɟɣɲɢɣ ɬɟɤɫɬ.
ɍɫɥɨɜɢɟɷɬɨ ɤɨɧɫɬɚɧɬɧɨɟ ɜɵɪɚɠɟɧɢɟ, ɤɨɬɨɪɨɟ ɫɬɪɨɢɬɫɹ ɢɡ ɦɚɤɪɨ-
ɢɦɟɧ, ɤɨɧɫɬɚɧɬ ɢ ɡɧɚɤɨɜ ɨɩɟɪɚɰɢɣ, ɜɤɥɸɱɚɹ ɥɨɝɢɱɟɫɤɢɟ ɫɜɹɡɤɢ «
&&» ɢ
«
||». Ⱦɨɩɭɫɤɚɟɬɫɹ ɬɚɤɠɟ ɢɫɩɨɥɶɡɨɜɚɧɢɟ ɜɵɪɚɠɟɧɢɹ sizeof(ɢɦɹ_ɬɢɩɚ) ɢ
ɩɪɟɩɪɨɰɟɫɫɨɪɧɨɣ ɮɭɧɤɰɢɢ
defined(ɦɚɤɪɨɢɦɹ), ɜɨɡɜɪɚɳɚɸɳɟɣ 1, ɟɫɥɢ
ɷɬɨ ɦɚɤɪɨɢɦɹ ɨɩɪɟɞɟɥɟɧɨ, ɢ 0, ɟɫɥɢ ɨɧɨ ɧɟ ɨɩɪɟɞɟɥɟɧɨ. ȼɦɟɫɬɨ ɞɢɪɟɤɬɢɜɵ
#if defined(DEBUG)
ɦɨɠɧɨ ɧɚɩɢɫɚɬɶ
#ifdef DEBUG
ȼɦɟɫɬɨ
#if !defined(DEBUG)
ɦɨɠɧɨ ɧɚɩɢɫɚɬɶ
#ifndef DEBUG
Ʉɨɦɛɢɧɚɰɢɢ #if - #else ɦɨɝɭɬ ɛɵɬɶ ɜɥɨɠɟɧɧɵɦɢ, ɩɪɢɱɟɦ ɩɨɫɥɟɞɨ-
ɜɚɬɟɥɶɧɨɫɬɶ
#else - #if ɡɚɦɟɧɹɟɬɫɹ ɨɞɧɨɣ ɞɢɪɟɤɬɢɜɨɣ #elif ɫ ɭɫɥɨɜɢɟɦ:
#if ɩɪɟɩɪɨɰɟɫɫɨɪɧɨɟ_ɭɫɥɨɜɢɟ_1
ɬɟɤɫɬ 1
#elif ɩɪɟɩɪɨɰɟɫɫɨɪɧɨɟ_ɭɫɥɨɜɢɟ_2
ɬɟɤɫɬ_2
#else
40
ɨɛɴɹɜɢɬɶ ɢɦɹ ɫɬɪɭɤɬɭɪɧɨɝɨ ɬɢɩɚ MyStruct, ɭɤɚɡɚɬɟɥɶ ɧɚ ɷɬɨɬ ɬɢɩ
PMyStruct ɢ ɬɢɩ ɫɫɵɥɤɢ ɧɚ ɧɟɝɨ RMyStruct, ɬɨ ɟɫɬɶ ɩɨɥɭɱɢɬɶ ɜ ɜɵɯɨɞɧɨɦ
ɬɟɤɫɬɟ ɫɬɪɨɱɤɢ
     struct MyStruct;
     typedef MyStruct *PMyStruct;
     typedef MyStruct &RMystruct;

3.4. ɍɫɥɨɜɧɚɹ ɤɨɦɩɢɥɹɰɢɹ

    Ⱦɢɪɟɤɬɢɜɵ ɩɪɟɩɪɨɰɟɫɫɨɪɚ #if, #else, #endif ɢ #elif ɩɨɡɜɨɥɹɸɬ, ɜ
ɡɚɜɢɫɢɦɨɫɬɢ ɨɬ ɪɟɡɭɥɶɬɚɬɨɜ ɩɪɨɜɟɪɤɢ ɧɟɤɨɬɨɪɵɯ ɭɫɥɨɜɢɣ, ɜɤɥɸɱɚɬɶ ɜ ɩɪɨ-
ɝɪɚɦɦɭ ɨɞɢɧ ɢɡ ɧɟɫɤɨɥɶɤɢɯ ɜɚɪɢɚɧɬɨɜ ɬɟɤɫɬɚ:
     #if ɩɪɟɩɪɨɰɟɫɫɨɪɧɨɟ_ɭɫɥɨɜɢɟ

     ɬɟɤɫɬ 1

     # else

     ɬɟɤɫɬ 2

     #endif

     ɞɚɥɶɧɟɣɲɢɣ ɬɟɤɫɬ.
    ɍɫɥɨɜɢɟ — ɷɬɨ ɤɨɧɫɬɚɧɬɧɨɟ ɜɵɪɚɠɟɧɢɟ, ɤɨɬɨɪɨɟ ɫɬɪɨɢɬɫɹ ɢɡ ɦɚɤɪɨ-
ɢɦɟɧ, ɤɨɧɫɬɚɧɬ ɢ ɡɧɚɤɨɜ ɨɩɟɪɚɰɢɣ, ɜɤɥɸɱɚɹ ɥɨɝɢɱɟɫɤɢɟ ɫɜɹɡɤɢ «&&» ɢ
«||». Ⱦɨɩɭɫɤɚɟɬɫɹ ɬɚɤɠɟ ɢɫɩɨɥɶɡɨɜɚɧɢɟ ɜɵɪɚɠɟɧɢɹ sizeof(ɢɦɹ_ɬɢɩɚ) ɢ
ɩɪɟɩɪɨɰɟɫɫɨɪɧɨɣ ɮɭɧɤɰɢɢ defined(ɦɚɤɪɨɢɦɹ), ɜɨɡɜɪɚɳɚɸɳɟɣ 1, ɟɫɥɢ
ɷɬɨ ɦɚɤɪɨɢɦɹ ɨɩɪɟɞɟɥɟɧɨ, ɢ 0, ɟɫɥɢ ɨɧɨ ɧɟ ɨɩɪɟɞɟɥɟɧɨ. ȼɦɟɫɬɨ ɞɢɪɟɤɬɢɜɵ
     #if defined(DEBUG)
ɦɨɠɧɨ ɧɚɩɢɫɚɬɶ
     #ifdef DEBUG
ȼɦɟɫɬɨ
     #if !defined(DEBUG)
ɦɨɠɧɨ ɧɚɩɢɫɚɬɶ
     #ifndef DEBUG
    Ʉɨɦɛɢɧɚɰɢɢ #if - #else ɦɨɝɭɬ ɛɵɬɶ ɜɥɨɠɟɧɧɵɦɢ, ɩɪɢɱɟɦ ɩɨɫɥɟɞɨ-
ɜɚɬɟɥɶɧɨɫɬɶ #else - #if ɡɚɦɟɧɹɟɬɫɹ ɨɞɧɨɣ ɞɢɪɟɤɬɢɜɨɣ #elif ɫ ɭɫɥɨɜɢɟɦ:
     #if ɩɪɟɩɪɨɰɟɫɫɨɪɧɨɟ_ɭɫɥɨɜɢɟ_1

     ɬɟɤɫɬ 1

     #elif ɩɪɟɩɪɨɰɟɫɫɨɪɧɨɟ_ɭɫɥɨɜɢɟ_2

     ɬɟɤɫɬ_2

     #else


                                  40