C++: a beginner's Guide, Second Edition


CRITICAL SKILL 10.6: Inheriting Multiple Base Classes



Download 11,33 Mb.
Pdf ko'rish
bet148/194
Sana12.03.2022
Hajmi11,33 Mb.
#491693
1   ...   144   145   146   147   148   149   150   151   ...   194
Bog'liq
C A Beginner\'s Guide 2nd Edition (2003)

CRITICAL SKILL 10.6: Inheriting Multiple Base Classes
In C++, it is possible for a derived class to inherit two or more base classes at the same time. For 
example, in this short program, D inherits both B1 and B2:
As this example illustrates, to cause more than one base class to be inherited, you must use a 
comma-separated list. Further, be sure to use an access specifier for each base class inherited.


26 
C++ A Beginner’s Guide by Herbert Schildt 
CRITICAL SKILL 10.7: When Constructor and Destructor
 
Functions Are Executed

Because a base class, a derived class, or both can contain constructors and/or destructors, it is 


important to understand the order in which they are executed. Specifically, when an object of a derived 
class comes into existence, in what order are the constructors called? When the object goes out of 
existence, in what order are the destructors called? To answer these questions, let’s begin with this 
simple program:
As the comment in main( ) indicates, this program simply constructs and then destroys an object called 
ob, which is of class D. When executed, this program displays
Constructing base portion Constructing derived portion Destructing derived portion Destructing base portion
As the output shows, first the constructor for B is executed, followed by the constructor of D. Next 
(since ob is immediately destroyed in this program), the destructor of D is called, followed by that of B.
The results of the foregoing experiment can be generalized as follows: When an object of a derived class 
is created, the base class constructor is called first, followed by the constructor for the derived class. 
When a derived object is destroyed, its destructor is called first, followed by that of the base class. Put 
differently, constructors are executed in the order of their derivation. Destructors are executed in 
reverse order of derivation. In the case of a multilevel class hierarchy (that is, where a derived class 
becomes the base class for another derived class), the same general rule applies: Constructors are called 


27 
C++ A Beginner’s Guide by Herbert Schildt 
in order of derivation; destructors are called in reverse order. When a class inherits more than one base 
class at a time, constructors are called in order from left to right as specified in the derived class’ 
inheritance list. Destructors are called in reverse order right to left.
1.
Can a derived class be used as a base class for another derived class?
2.
In a class hierarchy, in what order are the constructors called?
3.
In a class hierarchy, in what order are the destructors called?
Ask the Expert

Download 11,33 Mb.

Do'stlaringiz bilan baham:
1   ...   144   145   146   147   148   149   150   151   ...   194




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