Объектга йўналтирилган программалаш
Download 0.58 Mb.
|
С ОЙП
- Bu sahifa navigatsiya:
- Ворислик Оддий ворислик
{
friend class Sinf1; //... }; Юқорида келтирилган программа бўлагида синфнинг тўлиқмас эълони фақат Sinf1 ичида Sinf2 синфига кўрсаткич бўлгандагина зарур бўлади. Дўст синфлар учун қуйидаги қоидадар амал қилади: дўстлик ўзаро эмас, яъни Sinf1 синфи Sinf2 синфининг дўсти эканлигидан Sinf2 синфини Sinf1 синф дўсти эканлиши келиб чиқмайди; дўстлик ворислик бўйича ўтмайди, агар Sinf1 синфи Sinf2 синфининг дўсти бўлса, Sinf1 синфини авлодлари Sinf2 синф дўстлари бўлмайди; дўстлик таянч синф авлодларига ўтмайди, агар Sinf1 синфи Sinf2 синфининг дўсти бўлса, Sinf1 синфини Sinf2 авлодларига дўст бўлмайди. Ворислик Оддий ворислик С++ тили синфга бир ёки бир нечта синфнинг берилганлар-аъзолари ва функциялар-аъзоларини ворислик билан олишга имкон беради. Бу ҳолда янги синфни ҳосилавий синф (ёки авлод синф) дейилади. Элементлари ворислик бўйича олинадиган синфга унинг ворисига нисбатан таянч синф (аждод синф) дейилади. Ворислик синфларнинг умумий хусусиятларини ягона битта таянч синфда абстракциялаш имконини беради. Ворис синфлар эса умумий хусусиятларни ворислик билан олган ҳолда, айрим функциялар-аъзоларни қайта аниқлаш орқали ёки қўшимча берилганлар–аъзолар ва функциялар–аъзоларни киритиш орқали таянч синфга маълум бир ўзгартириш киритишлари мумкин. Шу сабабли ҳосилавий синфларни аниқлаш сезиларли равишда камаяди, чунки унга фақат таянч синфдан фарқли элементлар қўшилади. Ҳосилавий синфни эълон қилиш синтаксиси қуйидаги кўринишда бўлади: class Hosilaviy : <мурожаат хоссаси> <таянч синф1>, <мурожаат хоссаси> <таянч синф2>, … <мурожаат хоссаси> <таянч синфN> { //… }; Бу ерда <мурожаат хоссаси> – public, protected ёки private, у бўлиши шарт эмас. Агар <мурожаат хоссаси> бўлмаса келишув бўйича синфлар учун private, структура учун public ҳисобланади. <таянч синф1> – олдиндан аниқланган таянч синфлар номлари. Мурожаат хоссаси таянч синф элементларининг ворислик бўйича олиш даражасини аниқлайди. Қуйидаги жадвалда ворислик вариантлари келтирилган.
Download 0.58 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling