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

UptoLike

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

class TAAB:public TAA // ɤɥɚɫɫ, ɩɪɨɢɡɜɨɞɧɵɣ ɨɬ ɤɥɚɫɫɚ TAA
{
ɉɟɪɟɦɟɧɧɵɟ ɢ ɦɟɬɨɞɵ TAAB
}
ȼ ɞɚɧɧɨɦ ɩɪɢɦɟɪɟ public ɹɜɥɹɟɬɫɹ ɨɞɧɢɦ ɢɡ ɦɨɞɢɮɢɤɬɚɬɨɪɨɜ ɞɨɫɬɭ-
ɩɚ, ɭɩɪɚɜɥɹɸɳɢɯ ɞɨɫɬɭɩɨɦ ɤ ɤɨɦɩɨɧɟɧɬɚɦ ɩɪɨɢɡɜɨɞɧɵɯ ɤɥɚɫɫɨɜ. ȿɫɥɢ ɛɚ-
ɡɨɜɵɣ ɤɥɚɫɫ ɨɛɴɹɜɥɟɧ ɤɚɤ
public, ɬɨ ɜ ɩɪɨɢɡɜɨɞɧɨɦ ɤɥɚɫɫɟ public-
ɤɨɦɩɨɧɟɧɬɵ ɛɚɡɨɜɨɝɨ ɤɥɚɫɫɚ ɨɫɬɚɧɭɬɫɹ public, protected-ɤɨɦɩɨɧɟɧɬɵ
ɛɚɡɨɜɨɝɨ ɤɥɚɫɫɚ ɨɫɬɚɧɭɬɫɹ
protected, private-ɤɨɦɩɨɧɟɧɬɵ ɛɚɡɨɜɨɝɨ
ɤɥɚɫɫɚ ɞɥɹ ɮɭɧɤɰɢɣ ɩɪɨɢɡɜɨɞɧɨɝɨ ɤɥɚɫɫɚ ɛɭɞɭɬ ɧɟɞɨɫɬɭɩɧɵ.
ȿɫɥɢ ɛɚɡɨɜɵɣ ɤɥɚɫɫ ɨɛɴɹɜɥɟɧ ɤɚɤ
private, ɬɨ ɜ ɩɪɨɢɡɜɨɞɧɨɦ ɤɥɚɫɫɟ
public ɢ protected-ɤɨɦɩɨɧɟɧɬɵ ɛɚɡɨɜɨɝɨ ɤɥɚɫɫɚ ɞɨɫɬɭɩɧɵ ɞɥɹ ɮɭɧɤɰɢɣ
ɩɪɨɢɡɜɨɞɧɨɝɨ ɤɥɚɫɫɚ, ɧɨ ɞɥɹ ɫɥɟɞɭɸɳɟɝɨ ɩɪɨɢɡɜɨɞɧɨɝɨ ɤɥɚɫɫɚ ɨɧɢ ɛɭɞɭɬ
ɫɱɢɬɚɬɶɫɹ
private, ɬɨ ɟɫɬɶ ɛɭɞɭɬ ɧɟɞɨɫɬɭɩɧɵ, private-ɤɨɦɩɨɧɟɧɬɵ ɛɚɡɨ-
ɜɨɝɨ ɤɥɚɫɫɚ ɧɟɞɨɫɬɭɩɧɵ ɜ ɩɪɨɢɡɜɨɞɧɵɯ ɤɥɚɫɫɚɯ.
ȿɫɥɢ ɛɚɡɨɜɵɣ ɤɥɚɫɫ ɨɛɴɹɜɥɟɧ ɤɚɤ
protected, ɬɨ ɜ ɩɪɨɢɡɜɨɞɧɨɦ ɤɥɚɫɫɟ
public ɢ protected-ɤɨɦɩɨɧɟɧɬɵ ɛɚɡɨɜɨɝɨ ɤɥɚɫɫɚ ɛɭɞɭɬ ɢɦɟɬɶ ɭɪɨɜɟɧɶ
ɞɨɫɬɭɩɚ
protected, private-ɤɨɦɩɨɧɟɧɬɵ ɛɚɡɨɜɨɝɨ ɤɥɚɫɫɚ ɛɭɞɭɬ ɧɟɞɨɫ-
ɬɭɩɧɵ ɜ ɩɪɨɢɡɜɨɞɧɵɯ ɤɥɚɫɫɚɯ.
Ʉɨɧɫɬɪɭɤɬɨɪ ɩɪɨɢɡɜɨɞɧɨɝɨ ɤɥɚɫɫɚ ɞɨɥɠɟɧ ɜɵɡɵɜɚɬɶ ɤɨɧɫɬɪɭɤɬɨɪ ɫɜɨ-
ɟɝɨ ɛɚɡɨɜɨɝɨ ɤɥɚɫɫɚ:
class TBase
{
public:
TBase(int s, int m, int d);
/* Ⱦɪɭɝɢɟ ɤɨɦɩɨɧɟɧɬɵ ɤɥɚɫɫɚ TBase */
}
class TVect:public TBase
{
public:
TVect(int k, int s,int m, int d):TBase(s, m, d)
{/* ɢɧɢɰɢɚɥɢɡɚɰɢɹ ɨɫɬɚɥɶɧɵɯ ɤɨɦɩɨɧɟɧɬ TVect */};
}
Ɉɛɪɚɬɢɦ ɜɧɢɦɚɧɢɟ ɧɚ ɬɨɬ ɮɚɤɬ, ɱɬɨ ɜ ɤɨɧɫɬɪɭɤɬɨɪɟ ɩɪɨɢɡɜɨɞɧɨɝɨ
ɤɥɚɫɫɚ ɩɚɪɚɦɟɬɪɵ, ɩɟɪɟɞɚɜɚɟɦɵɟ ɤɨɧɫɬɪɭɤɬɨɪɭ ɛɚɡɨɜɨɝɨ ɤɥɚɫɫɚ (ɜ ɧɚɲɟɦ
ɩɪɢɦɟɪɟ ɩɚɪɚɦɟɬɪɵ
s, m ɢ d), ɹɜɥɹɸɬɫɹ ɮɚɤɬɢɱɟɫɤɢɦɢ, ɚ ɧɟ ɮɨɪɦɚɥɶ-
ɧɵɦɢ.
4.4. ɉɪɢɦɟɪ ɩɨɫɬɪɨɟɧɢɹ ɫɢɫɬɟɦɵ ɤɥɚɫɫɨɜ
ɂɡɜɟɫɬɧɨ, ɱɬɨ ɩɪɢ ɨɛɴɹɜɥɟɧɢɢ ɦɚɫɫɢɜɨɜ ɜ ɋɢ/ɋɢ++ ɤɨɥɢɱɟɫɬɜɨ ɷɥɟ-
ɦɟɧɬɨɜ ɦɚɫɫɢɜɚ ɡɚɞɚɟɬɫɹ ɤɨɧɫɬɚɧɬɨɣ ɢ ɜ ɞɚɥɶɧɟɣɲɟɦ ɧɟ ɦɨɠɟɬ ɛɵɬɶ ɢɡɦɟ-
ɧɟɧɨ. ɉɪɢ ɨɛɪɚɳɟɧɢɢ ɤ ɷɥɟɦɟɧɬɚɦ ɦɚɫɫɢɜ ɨɬɫɭɬɫɬɜɭɟɬ ɤɨɧɬɪɨɥɶ ɜɵɯɨɞɚ ɡɚ
ɩɪɟɞɟɥɵ ɢɧɞɟɤɫɨɜ ɦɚɫɫɢɜɚ, ɱɬɨ ɩɪɢɜɨɞɢɬ ɤ ɬɪɭɞɧɨ ɨɛɧɚɪɭɠɢɜɚɦɵɦ ɨɲɢɛ-
ɤɚɦ ɜ ɩɪɨɝɪɚɦɦɚɯ. ɉɨɫɬɪɨɢɦ ɫɢɫɬɟɦɭ ɤɥɚɫɫɨɜ ɞɥɹ ɨɛɪɚɛɨɬɤɢ ɞɢɧɚɦɢɱɟɫɤɢɯ
47
     class TAAB:public TAA // ɤɥɚɫɫ, ɩɪɨɢɡɜɨɞɧɵɣ ɨɬ ɤɥɚɫɫɚ TAA
        {
        ɉɟɪɟɦɟɧɧɵɟ ɢ ɦɟɬɨɞɵ TAAB
        }
    ȼ ɞɚɧɧɨɦ ɩɪɢɦɟɪɟ public ɹɜɥɹɟɬɫɹ ɨɞɧɢɦ ɢɡ ɦɨɞɢɮɢɤɬɚɬɨɪɨɜ ɞɨɫɬɭ-
ɩɚ, ɭɩɪɚɜɥɹɸɳɢɯ ɞɨɫɬɭɩɨɦ ɤ ɤɨɦɩɨɧɟɧɬɚɦ ɩɪɨɢɡɜɨɞɧɵɯ ɤɥɚɫɫɨɜ. ȿɫɥɢ ɛɚ-
ɡɨɜɵɣ ɤɥɚɫɫ ɨɛɴɹɜɥɟɧ ɤɚɤ public, ɬɨ ɜ ɩɪɨɢɡɜɨɞɧɨɦ ɤɥɚɫɫɟ public-
ɤɨɦɩɨɧɟɧɬɵ ɛɚɡɨɜɨɝɨ ɤɥɚɫɫɚ ɨɫɬɚɧɭɬɫɹ public, protected-ɤɨɦɩɨɧɟɧɬɵ
ɛɚɡɨɜɨɝɨ ɤɥɚɫɫɚ ɨɫɬɚɧɭɬɫɹ protected, private-ɤɨɦɩɨɧɟɧɬɵ ɛɚɡɨɜɨɝɨ
ɤɥɚɫɫɚ ɞɥɹ ɮɭɧɤɰɢɣ ɩɪɨɢɡɜɨɞɧɨɝɨ ɤɥɚɫɫɚ ɛɭɞɭɬ ɧɟɞɨɫɬɭɩɧɵ.
     ȿɫɥɢ ɛɚɡɨɜɵɣ ɤɥɚɫɫ ɨɛɴɹɜɥɟɧ ɤɚɤ private, ɬɨ ɜ ɩɪɨɢɡɜɨɞɧɨɦ ɤɥɚɫɫɟ
public ɢ protected-ɤɨɦɩɨɧɟɧɬɵ ɛɚɡɨɜɨɝɨ ɤɥɚɫɫɚ ɞɨɫɬɭɩɧɵ ɞɥɹ ɮɭɧɤɰɢɣ
ɩɪɨɢɡɜɨɞɧɨɝɨ ɤɥɚɫɫɚ, ɧɨ ɞɥɹ ɫɥɟɞɭɸɳɟɝɨ ɩɪɨɢɡɜɨɞɧɨɝɨ ɤɥɚɫɫɚ ɨɧɢ ɛɭɞɭɬ
ɫɱɢɬɚɬɶɫɹ private, ɬɨ ɟɫɬɶ ɛɭɞɭɬ ɧɟɞɨɫɬɭɩɧɵ, private-ɤɨɦɩɨɧɟɧɬɵ ɛɚɡɨ-
ɜɨɝɨ ɤɥɚɫɫɚ ɧɟɞɨɫɬɭɩɧɵ ɜ ɩɪɨɢɡɜɨɞɧɵɯ ɤɥɚɫɫɚɯ.
     ȿɫɥɢ ɛɚɡɨɜɵɣ ɤɥɚɫɫ ɨɛɴɹɜɥɟɧ ɤɚɤ protected, ɬɨ ɜ ɩɪɨɢɡɜɨɞɧɨɦ ɤɥɚɫɫɟ
public ɢ protected-ɤɨɦɩɨɧɟɧɬɵ ɛɚɡɨɜɨɝɨ ɤɥɚɫɫɚ ɛɭɞɭɬ ɢɦɟɬɶ ɭɪɨɜɟɧɶ
ɞɨɫɬɭɩɚ protected, private-ɤɨɦɩɨɧɟɧɬɵ ɛɚɡɨɜɨɝɨ ɤɥɚɫɫɚ ɛɭɞɭɬ ɧɟɞɨɫ-
ɬɭɩɧɵ ɜ ɩɪɨɢɡɜɨɞɧɵɯ ɤɥɚɫɫɚɯ.
     Ʉɨɧɫɬɪɭɤɬɨɪ ɩɪɨɢɡɜɨɞɧɨɝɨ ɤɥɚɫɫɚ ɞɨɥɠɟɧ ɜɵɡɵɜɚɬɶ ɤɨɧɫɬɪɭɤɬɨɪ ɫɜɨ-
ɟɝɨ ɛɚɡɨɜɨɝɨ ɤɥɚɫɫɚ:
     class TBase
        {
        public:
         TBase(int s, int m, int d);
         /* Ⱦɪɭɝɢɟ ɤɨɦɩɨɧɟɧɬɵ ɤɥɚɫɫɚ TBase */
        }
     class TVect:public TBase
        {
        public:
         TVect(int k, int s,int m, int d):TBase(s, m, d)
            {/* ɢɧɢɰɢɚɥɢɡɚɰɢɹ ɨɫɬɚɥɶɧɵɯ ɤɨɦɩɨɧɟɧɬ TVect */};
        }
    Ɉɛɪɚɬɢɦ ɜɧɢɦɚɧɢɟ ɧɚ ɬɨɬ ɮɚɤɬ, ɱɬɨ ɜ ɤɨɧɫɬɪɭɤɬɨɪɟ ɩɪɨɢɡɜɨɞɧɨɝɨ
ɤɥɚɫɫɚ ɩɚɪɚɦɟɬɪɵ, ɩɟɪɟɞɚɜɚɟɦɵɟ ɤɨɧɫɬɪɭɤɬɨɪɭ ɛɚɡɨɜɨɝɨ ɤɥɚɫɫɚ (ɜ ɧɚɲɟɦ
ɩɪɢɦɟɪɟ ɩɚɪɚɦɟɬɪɵ s, m ɢ d), ɹɜɥɹɸɬɫɹ ɮɚɤɬɢɱɟɫɤɢɦɢ, ɚ ɧɟ ɮɨɪɦɚɥɶ-
ɧɵɦɢ.

4.4. ɉɪɢɦɟɪ ɩɨɫɬɪɨɟɧɢɹ ɫɢɫɬɟɦɵ ɤɥɚɫɫɨɜ

    ɂɡɜɟɫɬɧɨ, ɱɬɨ ɩɪɢ ɨɛɴɹɜɥɟɧɢɢ ɦɚɫɫɢɜɨɜ ɜ ɋɢ/ɋɢ++ ɤɨɥɢɱɟɫɬɜɨ ɷɥɟ-
ɦɟɧɬɨɜ ɦɚɫɫɢɜɚ ɡɚɞɚɟɬɫɹ ɤɨɧɫɬɚɧɬɨɣ ɢ ɜ ɞɚɥɶɧɟɣɲɟɦ ɧɟ ɦɨɠɟɬ ɛɵɬɶ ɢɡɦɟ-
ɧɟɧɨ. ɉɪɢ ɨɛɪɚɳɟɧɢɢ ɤ ɷɥɟɦɟɧɬɚɦ ɦɚɫɫɢɜ ɨɬɫɭɬɫɬɜɭɟɬ ɤɨɧɬɪɨɥɶ ɜɵɯɨɞɚ ɡɚ
ɩɪɟɞɟɥɵ ɢɧɞɟɤɫɨɜ ɦɚɫɫɢɜɚ, ɱɬɨ ɩɪɢɜɨɞɢɬ ɤ ɬɪɭɞɧɨ ɨɛɧɚɪɭɠɢɜɚɦɵɦ ɨɲɢɛ-
ɤɚɦ ɜ ɩɪɨɝɪɚɦɦɚɯ. ɉɨɫɬɪɨɢɦ ɫɢɫɬɟɦɭ ɤɥɚɫɫɨɜ ɞɥɹ ɨɛɪɚɛɨɬɤɢ ɞɢɧɚɦɢɱɟɫɤɢɯ

                                  47