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

UptoLike

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

while (*rabstr!='n')
{
cin >> rabstr;
if (*rabstr=='n') break;
TString s1();
TString s2(6);
TString s3(6, rabstr);
TString* ps1=new TString("ɗɬɨ ɫɬɪɨɤɚ ɩɨ ɭɤɚɡɚɬɟɥɸ");
cout <<"s1="; ps1->print();
cout <<"s2="; s2.print();
cout <<"s3="; s3.print();
}
return 0;
}
Ɉɩɢɫɚɧɢɟ ɤɨɧɫɬɪɭɤɬɨɪɚ ɦɨɠɧɨ ɭɩɪɨɫɬɢɬɶ, ɟɫɥɢ ɤɨɦɩɨɧɟɧɬɵ-ɞɚɧɧɵɟ
ɩɪɢɧɚɞɥɟɠɚɬ ɤ ɛɚɡɨɜɵɦ ɬɢɩɚɦ ɢɥɢ ɹɜɥɹɸɬɫɹ ɨɛɴɟɤɬɧɵɦɢ ɩɟɪɟɦɟɧɧɵɦɢ,
ɢɦɟɸɳɢɦɢ ɤɨɧɫɬɪɭɤɬɨɪ. ɉɪɢ ɨɩɢɫɚɧɢɢ ɤɨɧɫɬɪɭɤɬɨɪɚ ɩɨɫɥɟ ɡɚɝɨɥɨɜɤɚ
ɮɭɧɤɰɢɢ ɦɨɠɧɨ ɩɨɫɬɚɜɢɬɶ ɞɜɨɟɬɨɱɢɟ ɢ ɡɚ ɧɢɦ ɫɩɢɫɨɤ ɢɧɢɰɢɚɥɢɡɚɬɨɪɨɜ
ɜɢɞɚ
ɢɞɟɧɬɢɮɢɤɚɬɨɪ (ɚɪɝɭɦɟɧɬɵ). ɇɚɩɪɢɦɟɪ, ɞɥɹ ɤɥɚɫɫɚ TPoint ɢɡ ɩɪɟ-
ɞɵɞɭɳɟɝɨ ɩɚɪɚɝɪɚɮɚ ɦɨɠɧɨ ɛɵɥɨ ɨɩɪɟɞɟɥɢɬɶ ɤɨɧɫɬɪɭɤɬɨɪ ɬɚɤ:
class TPoint
{
.....
public:
TPoint(int x0, int y0):x(x0), y(y0){};
}
ȼ ɷɬɨɦ ɤɨɧɫɬɪɭɤɬɨɪɟ ɜɫɟ ɤɨɦɩɨɧɟɧɬɵ ɩɨɥɭɱɚɸɬ ɡɧɚɱɟɧɢɹ ɢɡ ɫɩɢɫɤɚ
ɢɧɢɰɢɚɥɢɡɚɰɢɢ, ɚ ɬɟɥɨ ɤɨɧɫɬɪɭɤɬɨɪɚ ɩɪɟɞɫɬɚɜɥɟɧɨ ɩɭɫɬɵɦ ɫɨɫɬɚɜɧɵɦ ɨɩɟ-
ɪɚɬɨɪɨɦ.
4.3. ɉɪɨɢɡɜɨɞɧɵɟ ɤɥɚɫɫɵ
Ʉɥɚɫɫɵ ɨɛɪɚɡɭɸɬ ɢɟɪɚɪɯɢɱɟɫɤɭɸ ɫɬɪɭɤɬɭɪɭ, ɤɨɝɞɚ ɜɵɞɟɥɹɟɬɫɹ ɧɟɤɨɬɨ-
ɪɵɣ ɛɚɡɨɜɵɣ ɤɥɚɫɫ, ɫɨɞɟɪɠɚɳɢɣ ɨɛɳɢɟ ɞɚɧɧɵɟ ɢ ɦɟɬɨɞɵ ɝɪɭɩɩɵ ɫɯɨɞɧɵɯ
ɤɥɚɫɫɨɜ, ɢ ɫɬɪɨɢɬɫɹ ɧɟɫɤɨɥɶɤɨ ɩɪɨɢɡɜɨɞɧɵɯ ɤɥɚɫɫɨɜ, ɜ ɤɨɬɨɪɵɯ ɤ ɞɚɧɧɵɦ ɢ
ɦɟɬɨɞɚɦ ɛɚɡɨɜɨɝɨ ɤɥɚɫɫɚ ɞɨɛɚɜɥɹɸɬɫɹ ɞɚɧɧɵɟ ɢ ɦɟɬɨɞɵ, ɧɟɨɛɯɨɞɢɦɵɟ ɞɥɹ
ɪɟɚɥɢɡɚɰɢɢ ɩɪɨɢɡɜɨɞɧɨɝɨ ɤɥɚɫɫɚ. Ɉɩɢɫɚɧɢɟ ɫɢɫɬɟɦɵ ɤɥɚɫɫɨɜ ɜ ɷɬɨɦ ɫɥɭɱɚɟ
ɜɵɝɥɹɞɢɬ ɬɚɤ:
class TA // ɛɚɡɨɜɵɣ ɤɥɚɫɫ
{
ɉɟɪɟɦɟɧɧɵɟ ɢ ɦɟɬɨɞɵ TA
}
class TAA:public TA // ɤɥɚɫɫ, ɩɪɨɢɡɜɨɞɧɵɣ ɨɬ ɤɥɚɫɫɚ TA
{
ɉɟɪɟɦɟɧɧɵɟ ɢ ɦɟɬɨɞɵ TAA
}
46
        while (*rabstr!='n')
           {
           cin >> rabstr;
           if (*rabstr=='n') break;
           TString s1();
           TString s2(6);
           TString s3(6, rabstr);
           TString* ps1=new TString("ɗɬɨ ɫɬɪɨɤɚ ɩɨ ɭɤɚɡɚɬɟɥɸ");
           cout <<"s1="; ps1->print();
           cout <<"s2="; s2.print();
           cout <<"s3="; s3.print();
           }
        return 0;
        }
    Ɉɩɢɫɚɧɢɟ ɤɨɧɫɬɪɭɤɬɨɪɚ ɦɨɠɧɨ ɭɩɪɨɫɬɢɬɶ, ɟɫɥɢ ɤɨɦɩɨɧɟɧɬɵ-ɞɚɧɧɵɟ
ɩɪɢɧɚɞɥɟɠɚɬ ɤ ɛɚɡɨɜɵɦ ɬɢɩɚɦ ɢɥɢ ɹɜɥɹɸɬɫɹ ɨɛɴɟɤɬɧɵɦɢ ɩɟɪɟɦɟɧɧɵɦɢ,
ɢɦɟɸɳɢɦɢ ɤɨɧɫɬɪɭɤɬɨɪ. ɉɪɢ ɨɩɢɫɚɧɢɢ ɤɨɧɫɬɪɭɤɬɨɪɚ ɩɨɫɥɟ ɡɚɝɨɥɨɜɤɚ
ɮɭɧɤɰɢɢ ɦɨɠɧɨ ɩɨɫɬɚɜɢɬɶ ɞɜɨɟɬɨɱɢɟ ɢ ɡɚ ɧɢɦ ɫɩɢɫɨɤ ɢɧɢɰɢɚɥɢɡɚɬɨɪɨɜ
ɜɢɞɚ ɢɞɟɧɬɢɮɢɤɚɬɨɪ (ɚɪɝɭɦɟɧɬɵ). ɇɚɩɪɢɦɟɪ, ɞɥɹ ɤɥɚɫɫɚ TPoint ɢɡ ɩɪɟ-
ɞɵɞɭɳɟɝɨ ɩɚɪɚɝɪɚɮɚ ɦɨɠɧɨ ɛɵɥɨ ɨɩɪɟɞɟɥɢɬɶ ɤɨɧɫɬɪɭɤɬɨɪ ɬɚɤ:
     class TPoint
        {
        .....
        public:
         TPoint(int x0, int y0):x(x0), y(y0){};
        }
    ȼ ɷɬɨɦ ɤɨɧɫɬɪɭɤɬɨɪɟ ɜɫɟ ɤɨɦɩɨɧɟɧɬɵ ɩɨɥɭɱɚɸɬ ɡɧɚɱɟɧɢɹ ɢɡ ɫɩɢɫɤɚ
ɢɧɢɰɢɚɥɢɡɚɰɢɢ, ɚ ɬɟɥɨ ɤɨɧɫɬɪɭɤɬɨɪɚ ɩɪɟɞɫɬɚɜɥɟɧɨ ɩɭɫɬɵɦ ɫɨɫɬɚɜɧɵɦ ɨɩɟ-
ɪɚɬɨɪɨɦ.

4.3. ɉɪɨɢɡɜɨɞɧɵɟ ɤɥɚɫɫɵ

    Ʉɥɚɫɫɵ ɨɛɪɚɡɭɸɬ ɢɟɪɚɪɯɢɱɟɫɤɭɸ ɫɬɪɭɤɬɭɪɭ, ɤɨɝɞɚ ɜɵɞɟɥɹɟɬɫɹ ɧɟɤɨɬɨ-
ɪɵɣ ɛɚɡɨɜɵɣ ɤɥɚɫɫ, ɫɨɞɟɪɠɚɳɢɣ ɨɛɳɢɟ ɞɚɧɧɵɟ ɢ ɦɟɬɨɞɵ ɝɪɭɩɩɵ ɫɯɨɞɧɵɯ
ɤɥɚɫɫɨɜ, ɢ ɫɬɪɨɢɬɫɹ ɧɟɫɤɨɥɶɤɨ ɩɪɨɢɡɜɨɞɧɵɯ ɤɥɚɫɫɨɜ, ɜ ɤɨɬɨɪɵɯ ɤ ɞɚɧɧɵɦ ɢ
ɦɟɬɨɞɚɦ ɛɚɡɨɜɨɝɨ ɤɥɚɫɫɚ ɞɨɛɚɜɥɹɸɬɫɹ ɞɚɧɧɵɟ ɢ ɦɟɬɨɞɵ, ɧɟɨɛɯɨɞɢɦɵɟ ɞɥɹ
ɪɟɚɥɢɡɚɰɢɢ ɩɪɨɢɡɜɨɞɧɨɝɨ ɤɥɚɫɫɚ. Ɉɩɢɫɚɧɢɟ ɫɢɫɬɟɦɵ ɤɥɚɫɫɨɜ ɜ ɷɬɨɦ ɫɥɭɱɚɟ
ɜɵɝɥɹɞɢɬ ɬɚɤ:
     class TA                                       // ɛɚɡɨɜɵɣ ɤɥɚɫɫ
        {
        ɉɟɪɟɦɟɧɧɵɟ ɢ ɦɟɬɨɞɵ TA
        }

     class TAA:public TA     // ɤɥɚɫɫ, ɩɪɨɢɡɜɨɞɧɵɣ ɨɬ ɤɥɚɫɫɚ TA
        {
        ɉɟɪɟɦɟɧɧɵɟ ɢ ɦɟɬɨɞɵ TAA
        }

                                  46