ВУЗ:
Составители:
Рубрика:
public:
int getCount(){return count;};
TBase(int s,int m,int d);
TBase();
TBase(TBase&);
~TBase();
virtual void print()=0; // ɑɢɫɬɚɹ ɜɢɪɬɭɚɥɶɧɚɹ ɮɭɧɤɰɢɹ
};
Ɍɨɝɞɚ ɜ ɩɪɨɢɡɜɨɞɧɵɯ ɤɥɚɫɫɚɯ ɞɨɥɠɧɚ ɛɵɬɶ ɨɛɴɹɜɥɟɧɚ ɡɚɦɟɳɚɸɳɚɹ ɟɟ
ɮɭɧɤɰɢɹ
print, ɜɵɩɨɥɧɹɸɳɚɹ ɪɟɚɥɶɧɵɟ ɞɟɣɫɬɜɢɹ:
class TIntArray:public TBase
{
/* Ⱦɪɭɝɢɟ ɦɟɬɨɞɵ */
virtual void print();
}
class TRealArray:public TBase
{
/* Ⱦɪɭɝɢɟ ɦɟɬɨɞɵ */
virtual void print();
}
ȼ ɩɪɨɝɪɚɦɦɟ, ɢɫɩɨɥɶɡɭɸɳɟɣ ɨɛɴɟɤɬɵ ɤɥɚɫɫɨɜ TIntArray ɢ
TRealArray, ɦɨɝɭɬ ɫɨɡɞɚɜɚɬɶɫɹ ɷɤɡɟɦɩɥɹɪɵ ɷɬɢɯ ɤɥɚɫɫɨɜ ɫ ɜɨɡɦɨɠɧɨɫɬɶɸ
ɨɛɪɚɳɟɧɢɹ ɤ ɧɢɦ ɱɟɪɟɡ ɭɤɚɡɚɬɟɥɶ ɧɚ ɛɚɡɨɜɵɣ ɤɥɚɫɫ:
TBase *pb;
TIntArray aint(5,3);
TRealArray areal(4,2);
Ɍɨɝɞɚ ɞɥɹ ɩɟɱɚɬɢ ɦɚɫɫɢɜɨɜ ɦɨɝɭɬ ɩɪɢɦɟɧɹɬɶɫɹ ɨɩɟɪɚɬɨɪɵ
pb=&aint; pb->print(); //ɉɟɱɚɬɶ ɦɚɫɫɢɜɚ aint
pb=&areal; pb->print(); // ɉɟɱɚɬɶ ɦɚɫɫɢɜɚ areal
ɉɪɢɜɟɞɟɦ ɟɳɟ ɨɞɢɧ ɩɪɢɦɟɪ ɢɫɩɨɥɶɡɨɜɚɧɢɹ ɜɢɪɬɭɚɥɶɧɵɯ ɮɭɧɤɰɢɣ.
ɉɭɫɬɶ ɧɟɤɨɬɨɪɵɣ ɥɸɛɢɬɟɥɶ ɞɨɦɚɲɧɢɯ ɠɢɜɨɬɧɵɯ ɪɟɲɢɥ ɡɚɜɟɫɬɢ ɤɚɬɚɥɨɝ
ɫɜɨɢɯ ɥɸɛɢɦɰɟɜ ɢ ɞɥɹ ɤɚɠɞɨɝɨ ɜɢɞɚ ɠɢɜɨɬɧɵɯ ɨɩɪɟɞɟɥɢɥ ɫɜɨɣ ɤɥɚɫɫ ɫ ɨɛ-
ɳɢɦ ɛɚɡɨɜɵɦ ɤɥɚɫɫɨɦ
Pet. Ⱦɥɹ ɤɪɚɬɤɨɫɬɢ ɨɝɪɚɧɢɱɢɦɫɹ ɜ ɨɩɢɫɚɧɢɢ ɤɚɠɞɨ-
ɝɨ ɠɢɜɨɬɧɨɝɨ ɟɝɨ ɤɥɢɱɤɨɣ ɢ ɬɢɩɨɜɵɦ ɢɡɞɚɜɚɟɦɵɦ ɠɢɜɨɬɧɵɦ ɡɜɭɤɨɦ ɫ ɜɨɡ-
ɦɨɠɧɨɫɬɶɸ ɜɵɜɨɞɚ ɧɚ ɷɤɪɚɧ ɫɩɢɫɤɚ ɤɥɢɱɟɤ ɢ ɩɪɟɞɫɬɚɜɥɟɧɢɹ ɢɡɞɚɜɚɟɦɵɯ
ɢɦɢ ɡɜɭɤɨɜ.
ɉɪɨɝɪɚɦɦɚ:
#include <iostream.h>
struct Pet // Ȼɚɡɨɜɵɣ ɤɥɚɫɫ
{
char *name;
virtual void speak()=0;
Pet( char *nm){name=nm;}
}
struct Dog:public Pet
{
virtual void speak()
{cout<<name<<“ ɝɨɜɨɪɢɬ “”<<“ Ⱥɜ-ɚɜ”<<endl;};
51
public:
int getCount(){return count;};
TBase(int s,int m,int d);
TBase();
TBase(TBase&);
~TBase();
virtual void print()=0; // ɑɢɫɬɚɹ ɜɢɪɬɭɚɥɶɧɚɹ ɮɭɧɤɰɢɹ
};
Ɍɨɝɞɚ ɜ ɩɪɨɢɡɜɨɞɧɵɯ ɤɥɚɫɫɚɯ ɞɨɥɠɧɚ ɛɵɬɶ ɨɛɴɹɜɥɟɧɚ ɡɚɦɟɳɚɸɳɚɹ ɟɟ
ɮɭɧɤɰɢɹ print, ɜɵɩɨɥɧɹɸɳɚɹ ɪɟɚɥɶɧɵɟ ɞɟɣɫɬɜɢɹ:
class TIntArray:public TBase
{
/* Ⱦɪɭɝɢɟ ɦɟɬɨɞɵ */
virtual void print();
}
class TRealArray:public TBase
{
/* Ⱦɪɭɝɢɟ ɦɟɬɨɞɵ */
virtual void print();
}
ȼ ɩɪɨɝɪɚɦɦɟ, ɢɫɩɨɥɶɡɭɸɳɟɣ ɨɛɴɟɤɬɵ ɤɥɚɫɫɨɜ TIntArray ɢ
TRealArray, ɦɨɝɭɬ ɫɨɡɞɚɜɚɬɶɫɹ ɷɤɡɟɦɩɥɹɪɵ ɷɬɢɯ ɤɥɚɫɫɨɜ ɫ ɜɨɡɦɨɠɧɨɫɬɶɸ
ɨɛɪɚɳɟɧɢɹ ɤ ɧɢɦ ɱɟɪɟɡ ɭɤɚɡɚɬɟɥɶ ɧɚ ɛɚɡɨɜɵɣ ɤɥɚɫɫ:
TBase *pb;
TIntArray aint(5,3);
TRealArray areal(4,2);
Ɍɨɝɞɚ ɞɥɹ ɩɟɱɚɬɢ ɦɚɫɫɢɜɨɜ ɦɨɝɭɬ ɩɪɢɦɟɧɹɬɶɫɹ ɨɩɟɪɚɬɨɪɵ
pb=&aint; pb->print(); //ɉɟɱɚɬɶ ɦɚɫɫɢɜɚ aint
pb=&areal; pb->print(); // ɉɟɱɚɬɶ ɦɚɫɫɢɜɚ areal
ɉɪɢɜɟɞɟɦ ɟɳɟ ɨɞɢɧ ɩɪɢɦɟɪ ɢɫɩɨɥɶɡɨɜɚɧɢɹ ɜɢɪɬɭɚɥɶɧɵɯ ɮɭɧɤɰɢɣ.
ɉɭɫɬɶ ɧɟɤɨɬɨɪɵɣ ɥɸɛɢɬɟɥɶ ɞɨɦɚɲɧɢɯ ɠɢɜɨɬɧɵɯ ɪɟɲɢɥ ɡɚɜɟɫɬɢ ɤɚɬɚɥɨɝ
ɫɜɨɢɯ ɥɸɛɢɦɰɟɜ ɢ ɞɥɹ ɤɚɠɞɨɝɨ ɜɢɞɚ ɠɢɜɨɬɧɵɯ ɨɩɪɟɞɟɥɢɥ ɫɜɨɣ ɤɥɚɫɫ ɫ ɨɛ-
ɳɢɦ ɛɚɡɨɜɵɦ ɤɥɚɫɫɨɦ Pet. Ⱦɥɹ ɤɪɚɬɤɨɫɬɢ ɨɝɪɚɧɢɱɢɦɫɹ ɜ ɨɩɢɫɚɧɢɢ ɤɚɠɞɨ-
ɝɨ ɠɢɜɨɬɧɨɝɨ ɟɝɨ ɤɥɢɱɤɨɣ ɢ ɬɢɩɨɜɵɦ ɢɡɞɚɜɚɟɦɵɦ ɠɢɜɨɬɧɵɦ ɡɜɭɤɨɦ ɫ ɜɨɡ-
ɦɨɠɧɨɫɬɶɸ ɜɵɜɨɞɚ ɧɚ ɷɤɪɚɧ ɫɩɢɫɤɚ ɤɥɢɱɟɤ ɢ ɩɪɟɞɫɬɚɜɥɟɧɢɹ ɢɡɞɚɜɚɟɦɵɯ
ɢɦɢ ɡɜɭɤɨɜ.
ɉɪɨɝɪɚɦɦɚ:
#include
struct Pet // Ȼɚɡɨɜɵɣ ɤɥɚɫɫ
{
char *name;
virtual void speak()=0;
Pet( char *nm){name=nm;}
}
struct Dog:public Pet
{
virtual void speak()
{cout< Страницы
- « первая
- ‹ предыдущая
- …
- 49
- 50
- 51
- 52
- 53
- …
- следующая ›
- последняя »
