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

UptoLike

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

TRect r2; // ɢɫɩɨɥɶɡɭɟɬɫɹ ɤɨɧɫɬɪɭɤɬɨɪ ɛɟɡ ɩɚɪɚɦɟɬɪɨɜ
ȼ ɨɩɟɪɚɰɢɢ new ɞɥɹ ɪɚɡɦɟɳɟɧɢɹ ɜ ɞɢɧɚɦɢɱɟɫɤɨɣ ɩɚɦɹɬɢ ɨɛɴɟɤɬɧɨɣ
ɩɟɪɟɦɟɧɧɨɣ ɡɚ ɢɦɟɧɟɦ ɬɢɩɚ ɬɚɤɠɟ ɭɤɚɡɵɜɚɸɬɫɹ ɚɪɝɭɦɟɧɬɵ ɤɨɧɫɬɪɭɤɬɨɪɚ
ɷɬɨɝɨ ɬɢɩɚ:
ptr=new TRect(7,3,18,40);
Ⱦɥɹ ɨɛɪɚɳɟɧɢɹ ɤ ɤɨɦɩɨɧɟɧɬɚɦ ɨɛɴɟɤɬɧɨɝɨ ɬɢɩɚ ɢɦɹ ɤɨɦɩɨɧɟɧɬɵ
ɞɨɥɠɧɨ ɭɬɨɱɧɹɬɶɫɹ ɢɦɟɧɟɦ ɨɛɴɟɤɬɧɨɣ ɩɟɪɟɦɟɧɧɨɣ ɢɥɢ ɭɤɚɡɚɬɟɥɟɦ ɧɚ ɧɟɟ:
r1.grow(2, -3);
pr->move(1, 1);
Boolean bb=r1.isEmpty();
4.2. Ʉɨɧɫɬɪɭɤɬɨɪɵ ɢ ɞɟɫɬɪɭɤɬɨɪɵ
Ɉɩɢɫɚɧɢɟ ɤɥɚɫɫɚ ɨɛɵɱɧɨ ɫɨɞɟɪɠɢɬ ɫɩɟɰɢɚɥɶɧɵɟ ɦɟɬɨɞɵ, ɜɵɡɵɜɚɟɦɵɟ
ɩɪɢ ɫɨɡɞɚɧɢɢ ɩɟɪɟɦɟɧɧɨɣ ɷɬɨɝɨ ɤɥɚɫɫɚ ɢ ɭɞɚɥɟɧɢɢ ɩɟɪɟɦɟɧɧɨɣ ɢɡ ɞɢɧɚɦɢ-
ɱɟɫɤɨɣ ɩɚɦɹɬɢɤɨɧɫɬɪɭɤɬɨɪɵ ɢ ɞɟɫɬɪɭɤɬɨɪɵ. Ʉɨɧɫɬɪɭɤɬɨɪ ɜɵɡɵɜɚɟɬɫɹ
ɩɨɫɥɟ ɜɵɞɟɥɟɧɢɹ ɩɚɦɹɬɢ ɞɥɹ ɩɟɪɟɦɟɧɧɨɣ ɢ ɨɛɟɫɩɟɱɢɜɚɟɬ ɢɧɢɰɢɚɥɢɡɚɰɢɸ
ɤɨɦɩɨɧɟɧɬ-ɞɚɧɧɵɯ, ɞɟɫɬɪɭɤɬɨɪ ɜɵɡɵɜɚɟɬɫɹ ɩɟɪɟɞ ɨɫɜɨɛɨɠɞɟɧɢɟɦ ɩɚɦɹɬɢ,
ɡɚɧɢɦɚɟɦɨɣ ɨɛɴɟɤɬɧɨɣ ɩɟɪɟɦɟɧɧɨɣ, ɢ ɩɪɟɞɧɚɡɧɚɱɟɧ ɞɥɹ ɜɵɩɨɥɧɟɧɢɹ ɞɨ-
ɩɨɥɧɢɬɟɥɶɧɵɯ ɞɟɣɫɬɜɢɣ, ɫɜɹɡɚɧɧɵɯ ɫ ɭɧɢɱɬɨɠɟɧɢɟɦ ɨɛɴɟɤɬɧɨɣ ɩɟɪɟɦɟɧ-
ɧɨɣ, ɧɚɩɪɢɦɟɪ ɞɥɹ ɨɫɜɨɛɨɠɞɟɧɢɹ ɩɚɦɹɬɢ, ɜɵɞɟɥɟɧɧɨɣ ɞɥɹ ɨɛɴɟɤɬɚ ɜɧɟ ɭɱɚ-
ɫɬɤɚ, ɨɬɜɟɞɟɧɧɨɝɨ ɞɥɹ ɤɨɦɩɨɧɟɧɬ-ɞɚɧɧɵɯ.
Ʉɚɤ ɭɠɟ ɨɬɦɟɱɚɥɨɫɶ, ɤɨɧɫɬɪɭɤɬɨɪ ɜɫɟɝɞɚ ɢɦɟɟɬ ɢɦɹ, ɫɨɜɩɚɞɚɸɳɟɟ ɫ
ɢɦɟɧɟɦ ɤɥɚɫɫɚ, ɞɥɹ ɧɟɝɨ ɧɟ ɭɤɚɡɵɜɚɟɬɫɹ ɬɢɩ ɜɨɡɜɪɚɳɚɟɦɨɝɨ ɡɧɚɱɟɧɢɹ ɢ ɨɧ
ɧɟ ɜɨɡɜɪɚɳɚɟɬ ɧɢɤɚɤɨɝɨ ɡɧɚɱɟɧɢɹ. Ʉɨɧɫɬɪɭɤɬɨɪ ɞɨɥɠɟɧ ɨɛɟɫɩɟɱɢɜɚɬɶ ɢɧɢ-
ɰɢɚɥɢɡɚɰɢɸ ɜɫɟɯ ɤɨɦɩɨɧɟɧɬ-ɞɚɧɧɵɯ. Ⱦɥɹ ɤɥɚɫɫɚ ɦɨɠɟɬ ɛɵɬɶ ɨɛɴɹɜɥɟɧɨ
ɧɟɫɤɨɥɶɤɨ ɤɨɧɫɬɪɭɤɬɨɪɨɜ, ɪɚɡɥɢɱɚɸɳɢɯɫɹ ɱɢɫɥɨɦ ɢ ɬɢɩɚɦɢ ɩɚɪɚɦɟɬɪɨɜ. ȼ
ɨɛɳɟɦ ɫɥɭɱɚɟ ɪɚɡɥɢɱɚɸɬ ɫɥɟɞɭɸɳɢɟ ɜɢɞɵ ɤɨɧɫɬɪɭɤɬɨɪɨɜ: ɤɨɧɫɬɪɭɤɬɨɪ ɫ
ɩɚɪɚɦɟɬɪɚɦɢ, ɤɨɧɫɬɪɭɤɬɨɪ ɛɟɡ ɩɚɪɚɦɟɬɪɨɜ ɢ ɤɨɧɫɬɪɭɤɬɨɪ ɤɨɩɢɪɨɜɚɧɢɹ ɫ
ɨɞɧɢɦ ɩɚɪɚɦɟɬɪɨɦ- ɫɫɵɥɤɨɣ ɧɚ ɩɟɪɟɦɟɧɧɭɸ ɬɨɝɨ ɠɟ ɨɛɴɟɤɬɧɨɝɨ ɬɢɩɚ. ȿɫɥɢ
ɞɥɹ ɨɛɴɟɤɬɧɨɝɨ ɬɢɩɚ ɧɟ ɨɩɪɟɞɟɥɟɧɨ ɧɢ ɨɞɧɨɝɨ ɤɨɧɫɬɪɭɤɬɨɪɚ, ɤɨɦɩɢɥɹɬɨɪ
ɫɨɡɞɚɟɬ ɞɥɹ ɧɟɝɨ ɤɨɧɫɬɪɭɤɬɨɪ ɩɨ ɭɦɨɥɱɚɧɢɸ, ɧɟ ɢɫɩɨɥɶɡɭɸɳɢɣ ɩɚɪɚɦɟɬ-
ɪɨɜ. Ʉɨɧɫɬɪɭɤɬɨɪ ɤɨɩɢɪɨɜɚɧɢɹ ɧɟɨɛɯɨɞɢɦ, ɟɫɥɢ ɩɟɪɟɦɟɧɧɚɹ ɨɛɴɟɤɬɧɨɝɨ
ɬɢɩɚ ɩɟɪɟɞɚɟɬɫɹ ɜ ɤɚɤɭɸ-ɧɢɛɭɞɶ ɮɭɧɤɰɢɸ ɤɚɤ ɚɪɝɭɦɟɧɬ, ɩɨɫɤɨɥɶɤɭ ɜɫɟ ɚɪ-
ɝɭɦɟɧɬɵ ɩɟɪɟɞɚɸɬɫɹ ɜ ɮɭɧɤɰɢɸ ɩɨ ɡɧɚɱɟɧɢɸ.
Ⱦɟɫɬɪɭɤɬɨɪ ɧɟɨɛɯɨɞɢɦ, ɟɫɥɢ ɨɛɴɟɤɬɧɵɣ ɬɢɩ ɫɨɞɟɪɠɢɬ ɤɨɦɩɨɧɟɧɬɵ,
ɹɜɥɹɸɳɢɟɫɹ ɭɤɚɡɚɬɟɥɹɦɢ ɧɚ ɞɢɧɚɦɢɱɟɫɤɢɟ ɞɚɧɧɵɟ, ɤɨɬɨɪɵɟ ɞɨɥɠɧɵ ɭɧɢɱ-
ɬɨɠɚɬɶɫɹ ɩɪɢ ɭɧɢɱɬɨɠɟɧɢɢ ɨɛɴɟɤɬɧɨɣ ɩɟɪɟɦɟɧɧɨɣ. Ⱦɟɫɬɪɭɤɬɨɪ ɜɫɟɝɞɚ
ɢɦɟɟɬ ɬɨ ɠɟ ɢɦɹ, ɱɬɨ ɢ ɢɦɹ ɤɥɚɫɫɚ, ɧɨ ɩɟɪɟɞ ɢɦɟɧɟɦ ɡɚɩɢɫɵɜɚɟɬɫɹ ɡɧɚɤ
«~»
(ɬɢɥɶɞɚ). Ⱦɟɫɬɪɭɤɬɨɪ ɧɟ ɢɦɟɟɬ ɩɚɪɚɦɟɬɪɨɜ ɢ ɩɨɞɨɛɧɨ ɤɨɧɫɬɪɭɤɬɨɪɭ ɧɟ ɜɨɡ-
ɜɪɚɳɚɟɬ ɧɢɤɚɤɨɝɨ ɡɧɚɱɟɧɢɹ.
ȼ ɤɚɱɟɫɬɜɟ ɩɪɢɦɟɪɚ ɪɚɫɫɦɨɬɪɢɦ ɨɛɴɟɤɬɧɵɣ ɬɢɩ
TString ɞɥɹ ɩɪɟɞ-
ɫɬɚɜɥɟɧɢɹ ɫɬɪɨɤɨɜɵɯ ɞɚɧɧɵɯ ɫ ɛɨɥɟɟ ɜɵɫɨɤɨɣ ɫɬɟɩɟɧɶɸ ɡɚɳɢɬɵ ɨɬ ɨɲɢ-
44
     TRect r2;         // ɢɫɩɨɥɶɡɭɟɬɫɹ ɤɨɧɫɬɪɭɤɬɨɪ ɛɟɡ ɩɚɪɚɦɟɬɪɨɜ
    ȼ ɨɩɟɪɚɰɢɢ new ɞɥɹ ɪɚɡɦɟɳɟɧɢɹ ɜ ɞɢɧɚɦɢɱɟɫɤɨɣ ɩɚɦɹɬɢ ɨɛɴɟɤɬɧɨɣ
ɩɟɪɟɦɟɧɧɨɣ ɡɚ ɢɦɟɧɟɦ ɬɢɩɚ ɬɚɤɠɟ ɭɤɚɡɵɜɚɸɬɫɹ ɚɪɝɭɦɟɧɬɵ ɤɨɧɫɬɪɭɤɬɨɪɚ
ɷɬɨɝɨ ɬɢɩɚ:
     ptr=new TRect(7,3,18,40);
    Ⱦɥɹ ɨɛɪɚɳɟɧɢɹ ɤ ɤɨɦɩɨɧɟɧɬɚɦ ɨɛɴɟɤɬɧɨɝɨ ɬɢɩɚ ɢɦɹ ɤɨɦɩɨɧɟɧɬɵ
ɞɨɥɠɧɨ ɭɬɨɱɧɹɬɶɫɹ ɢɦɟɧɟɦ ɨɛɴɟɤɬɧɨɣ ɩɟɪɟɦɟɧɧɨɣ ɢɥɢ ɭɤɚɡɚɬɟɥɟɦ ɧɚ ɧɟɟ:

     r1.grow(2, -3);
     pr->move(1, 1);
     Boolean bb=r1.isEmpty();

4.2. Ʉɨɧɫɬɪɭɤɬɨɪɵ ɢ ɞɟɫɬɪɭɤɬɨɪɵ

     Ɉɩɢɫɚɧɢɟ ɤɥɚɫɫɚ ɨɛɵɱɧɨ ɫɨɞɟɪɠɢɬ ɫɩɟɰɢɚɥɶɧɵɟ ɦɟɬɨɞɵ, ɜɵɡɵɜɚɟɦɵɟ
ɩɪɢ ɫɨɡɞɚɧɢɢ ɩɟɪɟɦɟɧɧɨɣ ɷɬɨɝɨ ɤɥɚɫɫɚ ɢ ɭɞɚɥɟɧɢɢ ɩɟɪɟɦɟɧɧɨɣ ɢɡ ɞɢɧɚɦɢ-
ɱɟɫɤɨɣ ɩɚɦɹɬɢ – ɤɨɧɫɬɪɭɤɬɨɪɵ ɢ ɞɟɫɬɪɭɤɬɨɪɵ. Ʉɨɧɫɬɪɭɤɬɨɪ ɜɵɡɵɜɚɟɬɫɹ
ɩɨɫɥɟ ɜɵɞɟɥɟɧɢɹ ɩɚɦɹɬɢ ɞɥɹ ɩɟɪɟɦɟɧɧɨɣ ɢ ɨɛɟɫɩɟɱɢɜɚɟɬ ɢɧɢɰɢɚɥɢɡɚɰɢɸ
ɤɨɦɩɨɧɟɧɬ-ɞɚɧɧɵɯ, ɞɟɫɬɪɭɤɬɨɪ ɜɵɡɵɜɚɟɬɫɹ ɩɟɪɟɞ ɨɫɜɨɛɨɠɞɟɧɢɟɦ ɩɚɦɹɬɢ,
ɡɚɧɢɦɚɟɦɨɣ ɨɛɴɟɤɬɧɨɣ ɩɟɪɟɦɟɧɧɨɣ, ɢ ɩɪɟɞɧɚɡɧɚɱɟɧ ɞɥɹ ɜɵɩɨɥɧɟɧɢɹ ɞɨ-
ɩɨɥɧɢɬɟɥɶɧɵɯ ɞɟɣɫɬɜɢɣ, ɫɜɹɡɚɧɧɵɯ ɫ ɭɧɢɱɬɨɠɟɧɢɟɦ ɨɛɴɟɤɬɧɨɣ ɩɟɪɟɦɟɧ-
ɧɨɣ, ɧɚɩɪɢɦɟɪ ɞɥɹ ɨɫɜɨɛɨɠɞɟɧɢɹ ɩɚɦɹɬɢ, ɜɵɞɟɥɟɧɧɨɣ ɞɥɹ ɨɛɴɟɤɬɚ ɜɧɟ ɭɱɚ-
ɫɬɤɚ, ɨɬɜɟɞɟɧɧɨɝɨ ɞɥɹ ɤɨɦɩɨɧɟɧɬ-ɞɚɧɧɵɯ.
     Ʉɚɤ ɭɠɟ ɨɬɦɟɱɚɥɨɫɶ, ɤɨɧɫɬɪɭɤɬɨɪ ɜɫɟɝɞɚ ɢɦɟɟɬ ɢɦɹ, ɫɨɜɩɚɞɚɸɳɟɟ ɫ
ɢɦɟɧɟɦ ɤɥɚɫɫɚ, ɞɥɹ ɧɟɝɨ ɧɟ ɭɤɚɡɵɜɚɟɬɫɹ ɬɢɩ ɜɨɡɜɪɚɳɚɟɦɨɝɨ ɡɧɚɱɟɧɢɹ ɢ ɨɧ
ɧɟ ɜɨɡɜɪɚɳɚɟɬ ɧɢɤɚɤɨɝɨ ɡɧɚɱɟɧɢɹ. Ʉɨɧɫɬɪɭɤɬɨɪ ɞɨɥɠɟɧ ɨɛɟɫɩɟɱɢɜɚɬɶ ɢɧɢ-
ɰɢɚɥɢɡɚɰɢɸ ɜɫɟɯ ɤɨɦɩɨɧɟɧɬ-ɞɚɧɧɵɯ. Ⱦɥɹ ɤɥɚɫɫɚ ɦɨɠɟɬ ɛɵɬɶ ɨɛɴɹɜɥɟɧɨ
ɧɟɫɤɨɥɶɤɨ ɤɨɧɫɬɪɭɤɬɨɪɨɜ, ɪɚɡɥɢɱɚɸɳɢɯɫɹ ɱɢɫɥɨɦ ɢ ɬɢɩɚɦɢ ɩɚɪɚɦɟɬɪɨɜ. ȼ
ɨɛɳɟɦ ɫɥɭɱɚɟ ɪɚɡɥɢɱɚɸɬ ɫɥɟɞɭɸɳɢɟ ɜɢɞɵ ɤɨɧɫɬɪɭɤɬɨɪɨɜ: ɤɨɧɫɬɪɭɤɬɨɪ ɫ
ɩɚɪɚɦɟɬɪɚɦɢ, ɤɨɧɫɬɪɭɤɬɨɪ ɛɟɡ ɩɚɪɚɦɟɬɪɨɜ ɢ ɤɨɧɫɬɪɭɤɬɨɪ ɤɨɩɢɪɨɜɚɧɢɹ ɫ
ɨɞɧɢɦ ɩɚɪɚɦɟɬɪɨɦ- ɫɫɵɥɤɨɣ ɧɚ ɩɟɪɟɦɟɧɧɭɸ ɬɨɝɨ ɠɟ ɨɛɴɟɤɬɧɨɝɨ ɬɢɩɚ. ȿɫɥɢ
ɞɥɹ ɨɛɴɟɤɬɧɨɝɨ ɬɢɩɚ ɧɟ ɨɩɪɟɞɟɥɟɧɨ ɧɢ ɨɞɧɨɝɨ ɤɨɧɫɬɪɭɤɬɨɪɚ, ɤɨɦɩɢɥɹɬɨɪ
ɫɨɡɞɚɟɬ ɞɥɹ ɧɟɝɨ ɤɨɧɫɬɪɭɤɬɨɪ ɩɨ ɭɦɨɥɱɚɧɢɸ, ɧɟ ɢɫɩɨɥɶɡɭɸɳɢɣ ɩɚɪɚɦɟɬ-
ɪɨɜ. Ʉɨɧɫɬɪɭɤɬɨɪ ɤɨɩɢɪɨɜɚɧɢɹ ɧɟɨɛɯɨɞɢɦ, ɟɫɥɢ ɩɟɪɟɦɟɧɧɚɹ ɨɛɴɟɤɬɧɨɝɨ
ɬɢɩɚ ɩɟɪɟɞɚɟɬɫɹ ɜ ɤɚɤɭɸ-ɧɢɛɭɞɶ ɮɭɧɤɰɢɸ ɤɚɤ ɚɪɝɭɦɟɧɬ, ɩɨɫɤɨɥɶɤɭ ɜɫɟ ɚɪ-
ɝɭɦɟɧɬɵ ɩɟɪɟɞɚɸɬɫɹ ɜ ɮɭɧɤɰɢɸ ɩɨ ɡɧɚɱɟɧɢɸ.
     Ⱦɟɫɬɪɭɤɬɨɪ ɧɟɨɛɯɨɞɢɦ, ɟɫɥɢ ɨɛɴɟɤɬɧɵɣ ɬɢɩ ɫɨɞɟɪɠɢɬ ɤɨɦɩɨɧɟɧɬɵ,
ɹɜɥɹɸɳɢɟɫɹ ɭɤɚɡɚɬɟɥɹɦɢ ɧɚ ɞɢɧɚɦɢɱɟɫɤɢɟ ɞɚɧɧɵɟ, ɤɨɬɨɪɵɟ ɞɨɥɠɧɵ ɭɧɢɱ-
ɬɨɠɚɬɶɫɹ ɩɪɢ ɭɧɢɱɬɨɠɟɧɢɢ ɨɛɴɟɤɬɧɨɣ ɩɟɪɟɦɟɧɧɨɣ. Ⱦɟɫɬɪɭɤɬɨɪ ɜɫɟɝɞɚ
ɢɦɟɟɬ ɬɨ ɠɟ ɢɦɹ, ɱɬɨ ɢ ɢɦɹ ɤɥɚɫɫɚ, ɧɨ ɩɟɪɟɞ ɢɦɟɧɟɦ ɡɚɩɢɫɵɜɚɟɬɫɹ ɡɧɚɤ «~»
(ɬɢɥɶɞɚ). Ⱦɟɫɬɪɭɤɬɨɪ ɧɟ ɢɦɟɟɬ ɩɚɪɚɦɟɬɪɨɜ ɢ ɩɨɞɨɛɧɨ ɤɨɧɫɬɪɭɤɬɨɪɭ ɧɟ ɜɨɡ-
ɜɪɚɳɚɟɬ ɧɢɤɚɤɨɝɨ ɡɧɚɱɟɧɢɹ.
     ȼ ɤɚɱɟɫɬɜɟ ɩɪɢɦɟɪɚ ɪɚɫɫɦɨɬɪɢɦ ɨɛɴɟɤɬɧɵɣ ɬɢɩ TString ɞɥɹ ɩɪɟɞ-
ɫɬɚɜɥɟɧɢɹ ɫɬɪɨɤɨɜɵɯ ɞɚɧɧɵɯ ɫ ɛɨɥɟɟ ɜɵɫɨɤɨɣ ɫɬɟɩɟɧɶɸ ɡɚɳɢɬɵ ɨɬ ɨɲɢ-
                                   44