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

UptoLike

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

ɦɚɫɫɢɜɨɜ, ɜ ɤɨɬɨɪɵɟ ɦɨɠɧɨ ɞɨɛɚɜɥɹɬɶ ɧɨɜɵɟ ɷɥɟɦɟɧɬɵ ɢ ɢɫɤɥɸɱɢɬɶ ɜɨɡ-
ɦɨɠɧɨɫɬɶ ɜɵɯɨɞɚ ɡɚ ɩɪɟɞɟɥɵ ɬɟɤɭɳɟɝɨ ɪɚɡɦɟɪɚ ɦɚɫɫɢɜɚ. Ɉɛɳɢɟ ɫɜɨɣɫɬɜɚ
ɦɚɫɫɢɜɨɜ ɫ ɬɚɤɢɦɢ ɫɜɨɣɫɬɜɚɦɢ, ɧɟ ɡɚɜɢɫɹɳɢɟ ɨɬ ɬɢɩɚ ɷɥɟɦɟɧɬɨɜ ɦɚɫɫɢɜɚ,
ɨɛɴɟɞɢɧɢɦ ɜ ɤɥɚɫɫɟ
TBase, ɚ ɞɥɹ ɦɚɫɫɢɜɨɜ ɫ ɪɚɡɥɢɱɧɵɦɢ ɬɢɩɚɦɢ ɷɥɟɦɟɧ-
ɬɨɜ ɨɛɪɚɡɭɟɦ ɫɜɨɢ ɤɥɚɫɫɵ. Ɉɩɢɫɚɧɢɹ ɤɥɚɫɫɨɜ ɨɛɴɟɞɢɧɢɦ ɜ ɮɚɣɥɟ ɡɚɝɨɥɨɜ-
ɤɨɜ
TBASEARR.H, ɚ ɨɩɪɟɞɟɥɟɧɢɹ ɦɟɬɨɞɨɜ ɩɪɢɜɟɞɟɦ ɜ ɮɚɣɥɟ TBASEARR.CPP.
// ɮɚɣɥ TBASEARR.H
#include <string.h>
#include <iostream.h>
class TBase //ɛɚɡɨɜɵɣ ɤɥɚɫɫ ɞɥɹ ɦɚɫɫɢɜɨɜ ɜɫɟɯ ɬɢɩɨɜ
{
int size, //ɪɚɡɦɟɪ ɷɥɟɦɟɧɬɚ
count, //ɬɟɤɭɳɟɟ ɱɢɫɥɨ ɷɥɟɦɟɧɬɨɜ
maxCount, //ɪɚɡɦɟɪ ɜɵɞɟɥɟɧɧɨɣ ɩɚɦɹɬɢ ɜ ɛɚɣɬɚɯ
delta; //ɩɪɢɪɚɳɟɧɢɟ ɩɚɦɹɬɢ ɜ ɛɚɣɬɚɯ
char *pmem; //ɭɤɚɡɚɬɟɥɶ ɧɚ ɜɵɞɟɥɟɧɧɭɸ ɩɚɦɹɬɶ
int changeSize(); //ɩɟɪɟɪɚɫɩɪɟɞɟɥɟɧɢɟ ɩɚɦɹɬɢ
protected:
void* getAddr(){return (void*)pmem;};
void addNewItem(void*); //ɞɨɛɚɜɥɟɧɢɟ ɜ ɤɨɧɟɰ ɦɚɫɫɢɜɚ
void error(const char* msg){cout<<msg<<endl;};
public:
int getCount(){return count;};
TBase(int s,int m,int d);
TBase();
TBase(TBase&);
~TBase();
};
/* Ɇɚɫɫɢɜ ɫ ɷɥɟɦɟɧɬɚɦɢ ɬɢɩɚ int */
class TIntArray:public TBase
{
public:
int getElem(int index); /* Ɂɧɚɱɟɧɢɟ ɷɥɟɦɟɧɬɚ
ɩɨ ɢɧɞɟɤɫɭ */
void putElem(int index,int &pe); /* Ɂɚɦɟɧɚ ɡɧɚɱɟɧɢɹ
ɷɥɟɦɟɧɬɚ ɩɨ
ɢɧɞɟɤɫɭ */
void addElem(int& el); /* Ⱦɨɛɚɜɥɟɧɢɟ ɷɥɟɦɟɧɬɚ ɜ ɤɨɧɟɰ
ɦɚɫɫɢɜɚ */
TIntArray& add(TIntArray&); /* ɋɥɨɠɟɧɢɟ ɞɜɭɯ ɦɚɫɫɢɜɨɜ
ɉɨɷɥɟɦɟɧɬɧɨ */
TIntArray& subtract(TIntArray&); // ȼɵɱɢɬɚɧɢɟ ɦɚɫɫɢɜɨɜ
void printElem(int index); /* ȼɵɜɨɞ ɡɧɚɱɟɧɢɹ ɷɥɟɦɟɧɬɚ
ɧɚ ɷɤɪɚɧ */
void print(); // ȼɵɜɨɞ ɧɚ ɷɤɪɚɧ ɜɫɟɝɨ ɦɚɫɫɢɜɚ
TIntArray(int m,int d):TBase((int)sizeof(int),m,d){};
// Ʉɨɧɫɬɪɭɤɬɨɪ
TIntArray(TBase& a):TBase(a){}; // Ʉɨɧɫɬɪɭɤɬɨɪ
~TIntArray(); // Ⱦɟɫɬɪɭɤɬɨɪ
};
48
ɦɚɫɫɢɜɨɜ, ɜ ɤɨɬɨɪɵɟ ɦɨɠɧɨ ɞɨɛɚɜɥɹɬɶ ɧɨɜɵɟ ɷɥɟɦɟɧɬɵ ɢ ɢɫɤɥɸɱɢɬɶ ɜɨɡ-
ɦɨɠɧɨɫɬɶ ɜɵɯɨɞɚ ɡɚ ɩɪɟɞɟɥɵ ɬɟɤɭɳɟɝɨ ɪɚɡɦɟɪɚ ɦɚɫɫɢɜɚ. Ɉɛɳɢɟ ɫɜɨɣɫɬɜɚ
ɦɚɫɫɢɜɨɜ ɫ ɬɚɤɢɦɢ ɫɜɨɣɫɬɜɚɦɢ, ɧɟ ɡɚɜɢɫɹɳɢɟ ɨɬ ɬɢɩɚ ɷɥɟɦɟɧɬɨɜ ɦɚɫɫɢɜɚ,
ɨɛɴɟɞɢɧɢɦ ɜ ɤɥɚɫɫɟ TBase, ɚ ɞɥɹ ɦɚɫɫɢɜɨɜ ɫ ɪɚɡɥɢɱɧɵɦɢ ɬɢɩɚɦɢ ɷɥɟɦɟɧ-
ɬɨɜ ɨɛɪɚɡɭɟɦ ɫɜɨɢ ɤɥɚɫɫɵ. Ɉɩɢɫɚɧɢɹ ɤɥɚɫɫɨɜ ɨɛɴɟɞɢɧɢɦ ɜ ɮɚɣɥɟ ɡɚɝɨɥɨɜ-
ɤɨɜ TBASEARR.H, ɚ ɨɩɪɟɞɟɥɟɧɢɹ ɦɟɬɨɞɨɜ ɩɪɢɜɟɞɟɦ ɜ ɮɚɣɥɟ TBASEARR.CPP.
     // ɮɚɣɥ TBASEARR.H
     #include 
     #include 
     class TBase         //ɛɚɡɨɜɵɣ ɤɥɚɫɫ ɞɥɹ ɦɚɫɫɢɜɨɜ ɜɫɟɯ ɬɢɩɨɜ
        {
        int size,                              //ɪɚɡɦɟɪ ɷɥɟɦɟɧɬɚ
             count,                    //ɬɟɤɭɳɟɟ ɱɢɫɥɨ ɷɥɟɦɟɧɬɨɜ
             maxCount,       //ɪɚɡɦɟɪ ɜɵɞɟɥɟɧɧɨɣ ɩɚɦɹɬɢ ɜ ɛɚɣɬɚɯ
             delta;                 //ɩɪɢɪɚɳɟɧɢɟ ɩɚɦɹɬɢ ɜ ɛɚɣɬɚɯ
            char *pmem;         //ɭɤɚɡɚɬɟɥɶ ɧɚ ɜɵɞɟɥɟɧɧɭɸ ɩɚɦɹɬɶ
            int changeSize();         //ɩɟɪɟɪɚɫɩɪɟɞɟɥɟɧɢɟ ɩɚɦɹɬɢ
        protected:
          void* getAddr(){return (void*)pmem;};
          void addNewItem(void*);   //ɞɨɛɚɜɥɟɧɢɟ ɜ ɤɨɧɟɰ ɦɚɫɫɢɜɚ
          void error(const char* msg){cout<