Alt linux Программирование на языке С++ в среде Qt Creator Е. Р. Алексеев, Г. Г. Злобин, Д. А. Костюк, О. В. Чеснокова, А. С. Чмыхало Москва alt linux 2015



Download 5,27 Mb.
Pdf ko'rish
bet129/193
Sana24.02.2022
Hajmi5,27 Mb.
#227496
1   ...   125   126   127   128   129   130   131   132   ...   193
Bog'liq
Book-qtC


Глава 10. Объектно-ориентированное программирование
Модификаторы наследования
:
• public
• protected
• private
Модификаторы доступа
:
• public
• protected
• private
c l a s s p o i n t { . . . } ;
c l a s s v e r t e x : public p o i n t
{ . . . } ;
c l a s s p o i n t
{
public :
i n t c o l o r ;
. . .
} ;
Таблица 10.1: Разница между модификаторами наследования и доступа
Модификатор наследования:
Модификатор
доступа:
public
protected
private
public
public
protected
private
protected
protected
protected
private
private
нет доступа
нет доступа
нет доступа
Таблица 10.2: Сочетание модификаторов наследования и доступа
Эти модификаторы могут произвольно чередоваться внутри описания класса и
уже использовались нами для обозначения открытых и закрытых секций класса.
Модификатор private описывает закрытые члены класса, доступ к которым
имеют только методы-члены этого класса. Модификатор public предназначен
для описания общедоступных элементов, доступ к которым возможен из любого
места в программе, где доступен объект данного класса. Модификатор protected
используется тогда, когда необходимо, чтобы некоторые члены базового класса
оставались закрытыми, но были бы доступны из класса-потомка.
Иными словами, одни и те же ключевые слова могут использоваться и в
качестве модификаторов наследования, и в качестве модификаторов доступа:
То, как изменяется доступ к элементам базового класса из методов производ-
ного класса в зависимости от значения модификаторов наследования, показано
в таблице 10.2.
Из таблицы видно, в производном классе доступ к элементам базового класса
может быть сделан более ограниченным, но никогда нельзя сделать его менее
ограниченным.
Программирование на языке С++ в среде Qt Creator


10.4. Наследование
295
10.4.1
Конструкторы и деструкторы при наследовании
Базовый класс, производный класс или оба могут иметь конструкторы и де-
структоры. Если и у базового и у производного классов есть конструкторы и
деструкторы, то они срабатывают по очереди: конструкторы выполняются в по-
рядке наследования, а деструкторы — в обратном порядке.
#include
using namespace s t d ;
c l a s s p a r e n t
{
public :
p a r e n t ( ) { c o u t << "Работа конструктора базового класса\ n " ; }
~ p a r e n t ( ) { c o u t << "Работа деструктора базового класса\ n " ; }
} ;
c l a s s c h i l d : public p a r e n t
{
public :
c h i l d ( ) { cout<<"Работа конструктора производного класса\ n " ; }
~ c h i l d ( ) { cout<<"Работа деструктора производного класса\ n " ; }
} ;
main ( )
{
c h i l d c1 ;
}
Выполнение этой предельно простой программы иллюстрирует порядок сра-
батывания конструкторов и деструкторов. Результат её работы следующим об-
разом отображается на экране:
Работа конструктора базового класса
Работа конструктора производного класса
Работа деструктора производного класса
Работа деструктора базового класса
При реализации наследования может возникнуть ситуация, когда конструк-
тор базового или производного класса требует параметры. Если параметры нуж-
но передать только конструктору производного класса, они передаются обыч-
ным способом. Если требуется передать какие-либо аргументы родительскому
конструктору, для этого используется расширенная запись конструктора произ-
водного класса:
конструктор_производного_класса (список формальных параметров)
: конструктор_базового_класса (список фактических параметров)
{
. . . //тело конструктора производного класса
}
Списки параметров родительского и дочернего конструкторов могут совпа-
дать, а могут и различаться. Например, конструктор производного класса часто
принимает некоторые аргументы только для того, чтобы передать их конструк-
тору базового класса. Приведём пример с уже обсуждавшимися классами point
и vertex.
#include
using namespace s t d ;
c l a s s p o i n t
{
protected :
i n t x , y , c o l o r ;
© 2015 Алексеев Е. Р., Злобин Г. Г., Костюк Д. А., Чеснокова О. В., Чмыхало А. С.


296
Download 5,27 Mb.

Do'stlaringiz bilan baham:
1   ...   125   126   127   128   129   130   131   132   ...   193




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