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

UptoLike

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

if (sign==0) break;
}
return;
}
ȿɫɥɢ ɜ ɩɪɨɝɪɚɦɦɟ ɛɭɞɭɬ ɨɛɴɹɜɥɟɧɵ ɦɚɫɫɢɜɵ
int aint[10];
double afl[20];
ɢ ɭɫɬɚɧɨɜɥɟɧɵ ɡɧɚɱɟɧɢɹ ɷɥɟɦɟɧɬɨɜ ɷɬɢɯ ɦɚɫɫɢɜɨɜ, ɬɨ ɜɵɡɨɜ ɮɭɧɤɰɢɢ
sort(aint, 10);
ɨɛɟɫɩɟɱɢɬ ɜɵɡɨɜ sort ɞɥɹ ɭɩɨɪɹɞɨɱɟɧɢɹ ɦɚɫɫɢɜɚ ɰɟɥɵɯ, ɚ ɜɵɡɨɜ ɮɭɧɤɰɢɢ
sort(afl, 20);
ɨɛɟɫɩɟɱɢɬ ɜɵɡɨɜ sort ɞɥɹ ɭɩɨɪɹɞɨɱɟɧɢɹ ɦɚɫɫɢɜɚ ɫ ɷɥɟɦɟɧɬɚɦɢ ɬɢɩɚ
double.
ȿɫɥɢ ɷɥɟɦɟɧɬɚɦɢ ɦɚɫɫɢɜɚ ɹɜɥɹɸɬɫɹ ɨɛɴɟɤɬɵ ɤɚɤɨɝɨ-ɥɢɛɨ ɨɩɪɟɞɟɥɟɧ-
ɧɨɝɨ ɩɪɨɝɪɚɦɦɢɫɬɨɦ ɤɥɚɫɫɚ, ɞɥɹ ɤɨɬɨɪɨɝɨ ɨɩɪɟɞɟɥɟɧɚ ɨɩɟɪɚɰɢɹ ɨɬɧɨɲɟɧɢɹ
«>», ɬɨ ɮɭɧɤɰɢɹ sort ɦɨɠɟɬ ɛɵɬɶ ɜɵɡɜɚɧɚ ɢ ɞɥɹ ɬɚɤɨɝɨ ɦɚɫɫɢɜɚ. Ɋɚɡɭɦɟ-
ɟɬɫɹ, ɜ ɨɛɴɟɤɬɧɨɦ ɤɨɞɟ ɩɪɨɝɪɚɦɦɵ ɛɭɞɭɬ ɩɪɢɫɭɬɫɬɜɨɜɚɬɶ ɜɫɟ ɜɚɪɢɚɧɬɵ ɪɟ-
ɚɥɶɧɨ ɜɵɡɵɜɚɦɨɣ ɮɭɧɤɰɢɢ
sort. ɉɚɪɚɦɟɬɪɢɡɚɰɢɹ ɮɭɧɤɰɢɢ ɫɨɤɪɚɳɚɟɬ
ɨɛɴɟɦ ɢɫɯɨɞɧɨɝɨ ɬɟɤɫɬɚ ɩɪɨɝɪɚɦɦɵ ɢ ɩɨɜɵɲɚɟɬ ɟɝɨ ɧɚɞɟɠɧɨɫɬɶ.
ȼ ɨɩɢɫɚɬɟɥɟ
template ɦɨɠɧɨ ɭɤɚɡɵɜɚɬɶ ɧɟɫɤɨɥɶɤɨ ɩɚɪɚɦɟɬɪɨɜ ɜɢɞɚ
class ɢɦɹ_ɬɢɩɚ,
ɚ ɬɚɤɠɟ ɩɚɪɚɦɟɬɪɵ ɛɚɡɨɜɵɯ ɬɢɩɨɜ. ɇɚɩɪɢɦɟɪ, ɮɭɧɤɰɢɹ
template <class T1, class T2>
void copy(T1 a[], T2 b[], int n)
{
for (int i=0; i<n; i++)
a[i]=b[i];
}
ɤɨɩɢɪɭɟɬ ɩɟɪɜɵɟ
n ɷɥɟɦɟɧɬɨɜ ɦɚɫɫɢɜɚ b ɬɢɩɚ T2 ɜɩɟɪɜɵɟn ɷɥɟɦɟɧɬɨɜ
ɦɚɫɫɢɜɚ
a ɬɢɩɚ T1. Ɋɚɡɭɦɟɟɬɫɹ, ɩɪɨɝɪɚɦɦɢɫɬ ɧɟɫɟɬ ɨɬɜɟɬɫɬɜɟɧɧɨɫɬɶ ɡɚ ɬɨ,
ɱɬɨɛɵ ɬɚɤɨɟ ɤɨɩɢɪɨɜɚɧɢɟ ɛɵɥɨ ɜɨɡɦɨɠɧɵɦ.
5.2. ɒɚɛɥɨɧɵ ɤɥɚɫɫɨɜ
ɉɨ ɚɧɚɥɨɝɢɢ ɫ ɩɚɪɚɦɟɬɪɢɡɨɜɚɧɧɨɣ ɮɭɧɤɰɢɟɣ ɦɨɠɧɨ ɩɨɫɬɪɨɢɬɶ ɩɚɪɚ-
ɦɟɬɪɢɡɨɜɚɧɧɨɟ ɨɩɢɫɚɧɢɟ ɤɥɚɫɫɚ, ɩɨɡɜɨɥɹɸɳɟɟ ɫɨɡɞɚɜɚɬɶ ɷɤɡɟɦɩɥɹɪɵ ɤɥɚɫ-
ɫɨɜ ɞɥɹ ɤɨɧɤɪɟɬɧɵɯ ɡɧɚɱɟɧɢɣ ɩɚɪɚɦɟɬɪɨɜ. ɉɚɪɚɦɟɬɪɢɡɨɜɚɧɧɵɣ ɤɥɚɫɫ ɨɩɢ-
ɫɵɜɚɟɬɫɹ ɫɥɟɞɭɸɳɢɦ ɨɛɪɚɡɨɦ:
template <class T>
class ɨɩɢɫɚɧɢɟ_ɤɥɚɫɫɚ
Ʉɚɤ ɢ ɞɥɹ ɮɭɧɤɰɢɣ, ɜ ɨɩɢɫɚɬɟɥɟ template ɦɨɠɟɬ ɛɵɬɶ ɡɚɞɚɧɨ ɧɟɫɤɨɥɶ-
ɤɨ ɩɚɪɚɦɟɬɪɨɜ. ȼ ɫɚɦɨɦ ɨɩɢɫɚɧɢɢ ɤɥɚɫɫɚ ɢɦɟɧɚ ɩɚɪɚɦɟɬɪɨɜ ɢɫɩɨɥɶɡɭɸɬɫɹ
ɤɚɤ ɢɦɟɧɚ ɬɢɩɨɜ ɞɚɧɧɵɯ, ɬɢɩɨɜ ɩɚɪɚɦɟɬɪɨɜ ɮɭɧɤɰɢɣ ɢ ɬɢɩɨɜ ɡɧɚɱɟɧɢɣ,
ɜɨɡɜɪɚɳɚɟɦɵɯ ɮɭɧɤɰɢɹɦɢ.
57
             if (sign==0) break;
             }
          return;
          }
ȿɫɥɢ ɜ ɩɪɨɝɪɚɦɦɟ ɛɭɞɭɬ ɨɛɴɹɜɥɟɧɵ ɦɚɫɫɢɜɵ
     int aint[10];
     double afl[20];
ɢ ɭɫɬɚɧɨɜɥɟɧɵ ɡɧɚɱɟɧɢɹ ɷɥɟɦɟɧɬɨɜ ɷɬɢɯ ɦɚɫɫɢɜɨɜ, ɬɨ ɜɵɡɨɜ ɮɭɧɤɰɢɢ
     sort(aint, 10);
ɨɛɟɫɩɟɱɢɬ ɜɵɡɨɜ sort ɞɥɹ ɭɩɨɪɹɞɨɱɟɧɢɹ ɦɚɫɫɢɜɚ ɰɟɥɵɯ, ɚ ɜɵɡɨɜ ɮɭɧɤɰɢɢ
     sort(afl, 20);
ɨɛɟɫɩɟɱɢɬ ɜɵɡɨɜ sort ɞɥɹ ɭɩɨɪɹɞɨɱɟɧɢɹ ɦɚɫɫɢɜɚ ɫ ɷɥɟɦɟɧɬɚɦɢ ɬɢɩɚ
double.
     ȿɫɥɢ ɷɥɟɦɟɧɬɚɦɢ ɦɚɫɫɢɜɚ ɹɜɥɹɸɬɫɹ ɨɛɴɟɤɬɵ ɤɚɤɨɝɨ-ɥɢɛɨ ɨɩɪɟɞɟɥɟɧ-
ɧɨɝɨ ɩɪɨɝɪɚɦɦɢɫɬɨɦ ɤɥɚɫɫɚ, ɞɥɹ ɤɨɬɨɪɨɝɨ ɨɩɪɟɞɟɥɟɧɚ ɨɩɟɪɚɰɢɹ ɨɬɧɨɲɟɧɢɹ
«>», ɬɨ ɮɭɧɤɰɢɹ sort ɦɨɠɟɬ ɛɵɬɶ ɜɵɡɜɚɧɚ ɢ ɞɥɹ ɬɚɤɨɝɨ ɦɚɫɫɢɜɚ. Ɋɚɡɭɦɟ-
ɟɬɫɹ, ɜ ɨɛɴɟɤɬɧɨɦ ɤɨɞɟ ɩɪɨɝɪɚɦɦɵ ɛɭɞɭɬ ɩɪɢɫɭɬɫɬɜɨɜɚɬɶ ɜɫɟ ɜɚɪɢɚɧɬɵ ɪɟ-
ɚɥɶɧɨ ɜɵɡɵɜɚɦɨɣ ɮɭɧɤɰɢɢ sort. ɉɚɪɚɦɟɬɪɢɡɚɰɢɹ ɮɭɧɤɰɢɢ ɫɨɤɪɚɳɚɟɬ
ɨɛɴɟɦ ɢɫɯɨɞɧɨɝɨ ɬɟɤɫɬɚ ɩɪɨɝɪɚɦɦɵ ɢ ɩɨɜɵɲɚɟɬ ɟɝɨ ɧɚɞɟɠɧɨɫɬɶ.
     ȼ ɨɩɢɫɚɬɟɥɟ template ɦɨɠɧɨ ɭɤɚɡɵɜɚɬɶ ɧɟɫɤɨɥɶɤɨ ɩɚɪɚɦɟɬɪɨɜ ɜɢɞɚ
     class ɢɦɹ_ɬɢɩɚ,
ɚ ɬɚɤɠɟ ɩɚɪɚɦɟɬɪɵ ɛɚɡɨɜɵɯ ɬɢɩɨɜ. ɇɚɩɪɢɦɟɪ, ɮɭɧɤɰɢɹ
     template 
     void copy(T1 a[], T2 b[], int n)
        {
        for (int i=0; i
     class ɨɩɢɫɚɧɢɟ_ɤɥɚɫɫɚ
    Ʉɚɤ ɢ ɞɥɹ ɮɭɧɤɰɢɣ, ɜ ɨɩɢɫɚɬɟɥɟ template ɦɨɠɟɬ ɛɵɬɶ ɡɚɞɚɧɨ ɧɟɫɤɨɥɶ-
ɤɨ ɩɚɪɚɦɟɬɪɨɜ. ȼ ɫɚɦɨɦ ɨɩɢɫɚɧɢɢ ɤɥɚɫɫɚ ɢɦɟɧɚ ɩɚɪɚɦɟɬɪɨɜ ɢɫɩɨɥɶɡɭɸɬɫɹ
ɤɚɤ ɢɦɟɧɚ ɬɢɩɨɜ ɞɚɧɧɵɯ, ɬɢɩɨɜ ɩɚɪɚɦɟɬɪɨɜ ɮɭɧɤɰɢɣ ɢ ɬɢɩɨɜ ɡɧɚɱɟɧɢɣ,
ɜɨɡɜɪɚɳɚɟɦɵɯ ɮɭɧɤɰɢɹɦɢ.


                                   57