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

UptoLike

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

ɋɬɚɬɢɱɟɫɤɢɟ ɤɨɦɩɨɧɟɧɬɵ-ɮɭɧɤɰɢɢ ɦɨɝɭɬ ɜɵɡɵɜɚɬɶɫɹ ɞɨ ɫɨɡɞɚɧɢɹ ɷɤ-
ɡɟɦɩɥɹɪɨɜ ɨɛɴɟɤɬɨɜ ɷɬɨɝɨ ɤɥɚɫɫɚ ɢ ɩɨɷɬɨɦɭ ɢɦɟɸɬ ɞɨɫɬɭɩ ɬɨɥɶɤɨ ɤ ɫɬɚɬɢ-
ɱɟɫɤɢɦ ɞɚɧɧɵɦ ɤɥɚɫɫɚ:
class X
{
static int sx1, sx2;
static void fsx(int k);
int x1, x2;
/* Ⱦɪɭɝɢɟ ɤɨɦɩɨɧɟɧɬɵ ɤɥɚɫɫɚ X */
}
int X::sx1=1;
int X::sx2=2;
int main()
{
...
X::fsx(3);
...
}
4.8. ɉɟɪɟɨɩɪɟɞɟɥɟɧɢɟ (ɩɟɪɟɝɪɭɡɤɚ) ɨɩɟɪɚɰɢɣ
ȼ ɹɡɵɤɚɯ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɹ ɨɩɪɟɞɟɥɟɧɚ ɫɟɦɚɧɬɢɤɚ ɨɩɟɪɚɰɢɣ, ɜɵɩɨɥ-
ɧɹɟɦɵɯ ɧɚɞ ɛɚɡɨɜɵɦɢ (ɩɪɟɞɨɩɪɟɞɟɥɟɧɧɵɦɢ) ɬɢɩɚɦɢ ɞɚɧɧɵɯ, ɧɚɩɪɢɦɟɪ,
ɟɫɥɢ
x, y ɢ z - ɩɟɪɟɦɟɧɧɵɟ ɬɢɩɚ float, ɬɨ ɡɚɩɢɫɶ x=y+z; ɩɪɟɞɩɨɥɚɝɚɟɬ
ɢɧɬɭɢɬɢɜɧɨ ɨɱɟɜɢɞɧɵɟ ɞɟɣɫɬɜɢɹ: ɫɥɨɠɟɧɢɟ
x ɢ y ɢ ɩɪɢɫɜɚɢɜɚɧɢɟ ɩɟɪɟɦɟɧ-
ɧɨɣ z ɩɨɥɭɱɟɧɧɨɣ ɫɭɦɦɵ.
ɀɟɥɚɬɟɥɶɧɨ ɛɵɥɨ ɛɵ ɢ ɞɥɹ ɬɢɩɨɜ, ɨɩɪɟɞɟɥɹɟɦɵɯ ɜ ɩɪɨɝɪɚɦɦɟ, ɜ ɬɨɦ
ɱɢɫɥɟ ɞɥɹ ɤɥɚɫɫɨɜ, ɨɩɪɟɞɟɥɢɬɶ ɫɟɦɚɧɬɢɤɭ ɢ ɚɥɝɨɪɢɬɦɵ ɨɩɟɪɚɰɢɣ ɫɥɨɠɟɧɢɹ,
ɜɵɱɢɬɚɧɢɹ, ɭɦɧɨɠɟɧɢɹ ɢ ɬɚɤ ɞɚɥɟɟ, ɱɬɨɛɵ ɢɦɟɬɶ ɜɨɡɦɨɠɧɨɫɬɶ ɜɦɟɫɬɨ ɜɵ-
ɡɨɜɚ ɫɨɨɬɜɟɬɫɬɜɭɸɳɢɯ ɮɭɧɤɰɢɣ ɡɚɩɢɫɵɜɚɬɶ ɩɪɨɫɬɨ
x+y ɢ ɜ ɫɥɭɱɚɟ, ɤɨɝɞɚ x
ɢ
y ɹɜɥɹɸɬɫɹ ɨɛɴɟɤɬɚɦɢ ɧɟɤɨɬɨɪɵɯ ɤɥɚɫɫɨɜ. ȼ C++ ɷɬɨ ɞɨɫɬɢɝɚɟɬɫɹ ɩɟɪɟ-
ɨɩɪɟɞɟɥɟɧɢɟɦ ɢɦɟɸɳɢɯɫɹ ɜ ɹɡɵɤɟ ɨɩɟɪɚɰɢɣ ɞɥɹ ɞɪɭɝɢɯ ɬɢɩɨɜ ɞɚɧɧɵɯ.
ɉɟɪɟɨɩɪɟɞɟɥɟɧɧɚɹ ɨɩɟɪɚɰɢɹ ɨɛɴɹɜɥɹɟɬɫɹ ɬɚɤ:
ɬɢɩ_ɪɟɡɭɥɶɬɚɬɚ operator ɡɧɚɤ_ɨɩɟɪɚɰɢɢ
(ɮɨɪɦɚɥɶɧɵɟ ɩɚɪɚɦɟɬɪɵ)
{
ɨɩɢɫɚɧɢɟ_ɚɥɝɨɪɢɬɦɚ_ɜɵɩɨɥɧɟɧɢɹ_ɨɩɟɪɚɰɢɢ
}
ɇɚɩɪɢɦɟɪ:
class TPoint
{
int x,y;
public:
TPoint& operator += (const TPoint& adder);
TPoint& operator -= (const TPoint& subber);
friend TPoint operator - (const TPoint& one,
const TPoint& two);
54
    ɋɬɚɬɢɱɟɫɤɢɟ ɤɨɦɩɨɧɟɧɬɵ-ɮɭɧɤɰɢɢ ɦɨɝɭɬ ɜɵɡɵɜɚɬɶɫɹ ɞɨ ɫɨɡɞɚɧɢɹ ɷɤ-
ɡɟɦɩɥɹɪɨɜ ɨɛɴɟɤɬɨɜ ɷɬɨɝɨ ɤɥɚɫɫɚ ɢ ɩɨɷɬɨɦɭ ɢɦɟɸɬ ɞɨɫɬɭɩ ɬɨɥɶɤɨ ɤ ɫɬɚɬɢ-
ɱɟɫɤɢɦ ɞɚɧɧɵɦ ɤɥɚɫɫɚ:
     class X
        {
        static int sx1, sx2;
        static void fsx(int k);
        int x1, x2;
        /* Ⱦɪɭɝɢɟ ɤɨɦɩɨɧɟɧɬɵ ɤɥɚɫɫɚ X */
        }
     int X::sx1=1;
     int X::sx2=2;
     int main()
        {
        ...
        X::fsx(3);
        ...
        }

4.8. ɉɟɪɟɨɩɪɟɞɟɥɟɧɢɟ (ɩɟɪɟɝɪɭɡɤɚ) ɨɩɟɪɚɰɢɣ

    ȼ ɹɡɵɤɚɯ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɹ ɨɩɪɟɞɟɥɟɧɚ ɫɟɦɚɧɬɢɤɚ ɨɩɟɪɚɰɢɣ, ɜɵɩɨɥ-
ɧɹɟɦɵɯ ɧɚɞ ɛɚɡɨɜɵɦɢ (ɩɪɟɞɨɩɪɟɞɟɥɟɧɧɵɦɢ) ɬɢɩɚɦɢ ɞɚɧɧɵɯ, ɧɚɩɪɢɦɟɪ,
ɟɫɥɢ x, y ɢ z - ɩɟɪɟɦɟɧɧɵɟ ɬɢɩɚ float, ɬɨ ɡɚɩɢɫɶ x=y+z; ɩɪɟɞɩɨɥɚɝɚɟɬ
ɢɧɬɭɢɬɢɜɧɨ ɨɱɟɜɢɞɧɵɟ ɞɟɣɫɬɜɢɹ: ɫɥɨɠɟɧɢɟ x ɢ y ɢ ɩɪɢɫɜɚɢɜɚɧɢɟ ɩɟɪɟɦɟɧ-
ɧɨɣ z ɩɨɥɭɱɟɧɧɨɣ ɫɭɦɦɵ.
    ɀɟɥɚɬɟɥɶɧɨ ɛɵɥɨ ɛɵ ɢ ɞɥɹ ɬɢɩɨɜ, ɨɩɪɟɞɟɥɹɟɦɵɯ ɜ ɩɪɨɝɪɚɦɦɟ, ɜ ɬɨɦ
ɱɢɫɥɟ ɞɥɹ ɤɥɚɫɫɨɜ, ɨɩɪɟɞɟɥɢɬɶ ɫɟɦɚɧɬɢɤɭ ɢ ɚɥɝɨɪɢɬɦɵ ɨɩɟɪɚɰɢɣ ɫɥɨɠɟɧɢɹ,
ɜɵɱɢɬɚɧɢɹ, ɭɦɧɨɠɟɧɢɹ ɢ ɬɚɤ ɞɚɥɟɟ, ɱɬɨɛɵ ɢɦɟɬɶ ɜɨɡɦɨɠɧɨɫɬɶ ɜɦɟɫɬɨ ɜɵ-
ɡɨɜɚ ɫɨɨɬɜɟɬɫɬɜɭɸɳɢɯ ɮɭɧɤɰɢɣ ɡɚɩɢɫɵɜɚɬɶ ɩɪɨɫɬɨ x+y ɢ ɜ ɫɥɭɱɚɟ, ɤɨɝɞɚ x
ɢ y ɹɜɥɹɸɬɫɹ ɨɛɴɟɤɬɚɦɢ ɧɟɤɨɬɨɪɵɯ ɤɥɚɫɫɨɜ. ȼ C++ ɷɬɨ ɞɨɫɬɢɝɚɟɬɫɹ ɩɟɪɟ-
ɨɩɪɟɞɟɥɟɧɢɟɦ ɢɦɟɸɳɢɯɫɹ ɜ ɹɡɵɤɟ ɨɩɟɪɚɰɢɣ ɞɥɹ ɞɪɭɝɢɯ ɬɢɩɨɜ ɞɚɧɧɵɯ.
    ɉɟɪɟɨɩɪɟɞɟɥɟɧɧɚɹ ɨɩɟɪɚɰɢɹ ɨɛɴɹɜɥɹɟɬɫɹ ɬɚɤ:
     ɬɢɩ_ɪɟɡɭɥɶɬɚɬɚ operator ɡɧɚɤ_ɨɩɟɪɚɰɢɢ
                                         (ɮɨɪɦɚɥɶɧɵɟ ɩɚɪɚɦɟɬɪɵ)
        {
        ɨɩɢɫɚɧɢɟ_ɚɥɝɨɪɢɬɦɚ_ɜɵɩɨɥɧɟɧɢɹ_ɨɩɟɪɚɰɢɢ
        }
ɇɚɩɪɢɦɟɪ:
     class TPoint
        {
        int x,y;
        public:
         TPoint& operator += (const TPoint& adder);
         TPoint& operator -= (const TPoint& subber);
         friend TPoint operator - (const TPoint& one,
                                   const TPoint& two);

                                  54