C++ за 21 день седьмое издание



Download 1,38 Mb.
bet179/437
Sana22.02.2022
Hajmi1,38 Mb.
#89455
TuriРеферат
1   ...   175   176   177   178   179   180   181   182   ...   437
Bog'liq
word1

// ... члены класса Carp

};


Пригодные для компиляции версии классов C arp и Tuna, производных от класса F ish , представлены в листинге 10.1.
Замечание о терминологии

Читая о наследовании, вы встретите такие термины, как наследуется от (inherits from) и происходит от (derives from). Они имеют одинаковый смысл.


Точно так же базовый класс (base class) иногда называют суперклассом (super class). Класс, происходящий от базового, называемый производным классом (derived class), мо­ жет упоминаться как подкласс (subclass).



Основы наследования

251

ЛИСТИНГ 10,1, Пример иерархии наследования________




Г: #include



  1. using namespace std;




  1. class Fish




  1. {




  1. public:




  1. bool FreshWaterFish;




  1. void Swim()




        1. {

      1. if (FreshWaterFish)




      1. cout « "Swims in lake" « endl;



Li:else



      1. cout « "Swims in sea" « endl;




      1. }



25: };


2": class Tuna: public Fish



  1. {




  1. public:




  1. Tuna()

22: {



  1. FreshWaterFish = false;

2c: class Carp: public Fish

2": {




26: public:


2 6: Carp()

  1. {

  2. FreshWaterFish = true;



22: }



  1. };



z i :



  1. int main()




  1. {



2":Carp myLunch;



  1. Tuna myDinner;




  1. cout « "Getting my food to swim" « endl;




  1. cout « "Lunch: ";



4 3: myLunch.Swim();
11:

  1. cout « "Dinner: ";




  1. myDinner.Swim();



return 0;

252 ЗАНЯТИЕ 10. Реализация наследования




Результат


Getting my food to swim


Lunch: Swims in lake


Dinner: Swims in sea


Анализ

Обратите внимание на строки 37 и 38 в функции m ain (), где создаются объекты т у - Lunch и m yD inner классов C arp и Tuna соответственно. В строках 43 и 46 я прошу свой завтрак и обед поплавать, вызвав их метод Swim (), который они должны поддерживать. Теперь, посмотрим на определение класса Tuna в строках 17-24 и класса C arp в стро­ ках 26-33. Как можно заметить, эти классы весьма компактны, и ни один из них, кажется, не определяет метод, Swim (), который мы сумели успешно вызывать в функции m ain (). Очевидно, метод Swim () исходит от класса F ish , определенного в строках 3 -15, и унасле­ дованный ими. Поскольку класс F is h объявляет метод Swim () открытым, происходящие от него классы T una и C a rp наследуют его (в ходе открытого наследования, осущ ест­ вляемого в строках 17 и 26) и автоматически предоставляют. Обратите внимание, как кон­ структоры классов C arp и Tuna инициализирует флаг базового класса F re sh W a te rF ish . который играет роль при решении, что отображает метод F i s h :: Swim ().



Download 1,38 Mb.

Do'stlaringiz bilan baham:
1   ...   175   176   177   178   179   180   181   182   ...   437




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish