ΠΊΠ°ΠΊΠΈΠ΅ утвСрТдСния Π²Π΅Ρ€Π½Ρ‹ ΠΊΠΎΠ³Π΄Π° Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс наслСдуСтся ΠΏΠΎ спСцификатору protected

ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ΅, Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΠΎΠ΅ ΠΈ частноС наслСдованиС Π½Π° C++

Π’ этом руководствС ΠΌΡ‹ научимся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠ΅, Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΠΎΠ΅ ΠΈ частноС наслСдованиС Π² C++ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ².
Π’ наслСдовании Π‘++ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΉ класс ΠΎΡ‚ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса Π² Ρ€Π°Π·Π½Ρ‹Ρ… Ρ€Π΅ΠΆΠΈΠΌΠ°Ρ… доступа. НапримСр:

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово public Π² ΠΊΠΎΠ΄Π΅:

Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ создали ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΉ класс ΠΎΡ‚ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса Π² общСдоступном Ρ€Π΅ΠΆΠΈΠΌΠ΅. Π’ качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ классы Π² Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΠΎΠΌ ΠΈΠ»ΠΈ частном Ρ€Π΅ΠΆΠΈΠΌΠ΅.

Π­Ρ‚ΠΈ 3 ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слова (общСдоступноС, Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΠΎΠ΅ ΠΈ частноС) извСстны ΠΊΠ°ΠΊ спСцификаторы доступа Π² наслСдовании C++.

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ

ΠŸΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠ΅, Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΠΎΠ΅ ΠΈ частноС наслСдованиС Π² C++ ΠΈΠΌΠ΅ΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ особСнности:

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ Ρ‡Π»Π΅Π½Ρ‹ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса нСдоступны для ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ класса.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1: ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠ΅ наслСдованиС C++

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ PublicDerived ΠΈΠ· Base Π² общСдоступном Ρ€Π΅ΠΆΠΈΠΌΠ΅.

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π² PublicDerived:

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ ΠΈ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹Π΅ Ρ‡Π»Π΅Π½Ρ‹ нСдоступны, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ общСдоступныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ getPVT() ΠΈ getProt() для доступа ΠΊ Π½ΠΈΠΌ:

Π”ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ Π² ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠΌ наслСдовании

Π”ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒΡ‡Π°ΡΡ‚Π½Ρ‹Π΅ Ρ‡Π»Π΅Π½Ρ‹Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹Π΅ члСныобщСствСнныС Ρ‡Π»Π΅Π½Ρ‹
Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ классдадада
ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΉ классНСтдада

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 2: Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΠΎΠ΅ наслСдованиС C++

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ProtectedDerived ΠΈΠ· Base Π² Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅.

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π² ProtectedDerived:

Как ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ, ΠΊ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹ΠΌ Ρ‡Π»Π΅Π½Π°ΠΌ нСльзя ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ.

Π”ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ Π² Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΠΎΠΌ наслСдовании

Π”ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒΡ‡Π°ΡΡ‚Π½Ρ‹Π΅ Ρ‡Π»Π΅Π½Ρ‹Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹Π΅ члСныобщСствСнныС Ρ‡Π»Π΅Π½Ρ‹
Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ классдадада
ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΉ классНСтдаДа (Π½Π°ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅)

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 3: частноС наслСдованиС Π½Π° C++

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΠΈΠ·Π²Π»Π΅ΠΊΠ»ΠΈ PrivateDerived ΠΈΠ· Base Π² частном Ρ€Π΅ΠΆΠΈΠΌΠ΅.

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π² PrivateDerived:

Как ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ, ΠΊ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ Ρ‡Π»Π΅Π½Π°ΠΌ нСльзя ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π£Ρ€ΠΎΠΊ β„–157. НаслСдованиС ΠΈ cΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ доступа protected

Обновл. 27 БСн 2021 |

На ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… ΡƒΡ€ΠΎΠΊΠ°Ρ… ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ наслСдованиС Π² языкС C++. Π’ΠΎ всСх Π½Π°ΡˆΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… ΠΌΡ‹ использовали ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ΅ наслСдованиС.

На этом ΡƒΡ€ΠΎΠΊΠ΅ ΠΌΡ‹ рассмотрим Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ этот Ρ‚ΠΈΠΏ наслСдования, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΄Π²Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚ΠΈΠΏΠ°: private ΠΈ protected. Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ эти Ρ‚ΠΈΠΏΡ‹ наслСдований Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ со спСцификаторами доступа для Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ограничСния доступа ΠΊ Ρ‡Π»Π΅Π½Π°ΠΌ.

Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ доступа protected

ΠœΡ‹ ΡƒΠΆΠ΅ рассматривали спСцификаторы доступа private ΠΈ public, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚, ΠΊΡ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ доступ ΠΊ Ρ‡Π»Π΅Π½Π°ΠΌ класса. Π’ качСствС напоминания: доступ ΠΊ public-Ρ‡Π»Π΅Π½Π°ΠΌ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ для всСх, ΠΊ private-Ρ‡Π»Π΅Π½Π°ΠΌ доступ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π»Π΅Π½Ρ‹ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ класса, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ находится private-Ρ‡Π»Π΅Π½. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ классы Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ private-Ρ‡Π»Π΅Π½Π°ΠΌ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ класса!

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: public = Β«ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉΒ», private = Β«Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉΒ», protected = Β«Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹ΠΉΒ».

Π’ языкС C++ Π΅ΡΡ‚ΡŒ Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ спСцификатор доступа, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΡ‹ Π΅Ρ‰Π΅ Π½Π΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² контСкстС наслСдования. Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ доступа protected ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ доступ ΠΊ Ρ‡Π»Π΅Π½Π°ΠΌ класса друТСствСнным ΠΈ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΌ классам. Доступ ΠΊ protected-Ρ‡Π»Π΅Π½Ρƒ Π²Π½Π΅ Ρ‚Π΅Π»Π° класса Π·Π°ΠΊΡ€Ρ‹Ρ‚.

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‡Π»Π΅Π½ m_protected класса Parent Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ доступСн Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅ΠΌΡƒ классу Child, Π½ΠΎ доступ ΠΊ Π½Π΅ΠΌΡƒ для Ρ‡Π»Π΅Π½ΠΎΠ² ΠΈΠ·Π²Π½Π΅ β€” Π·Π°ΠΊΡ€Ρ‹Ρ‚.

Когда слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ спСцификатор доступа protected?

К protected-Ρ‡Π»Π΅Π½Π°ΠΌ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ класса доступ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ для Ρ‡Π»Π΅Π½ΠΎΠ² Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅Π³ΠΎ класса, Π° это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ссли Π²Ρ‹ ΠΏΠΎΠ·ΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Ρ‡Ρ‚ΠΎ-Π»ΠΈΠ±ΠΎ Π² protected-Ρ‡Π»Π΅Π½Π΅ (Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ Ρ‚.Π΄.), Ρ‚ΠΎ Π²Π°ΠΌ придСтся внСсти измСнСния ΠΊΠ°ΠΊ Π² Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ, Ρ‚Π°ΠΊ ΠΈ Π²ΠΎ всС Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ классы. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ использованиС спСцификатора доступа protected Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ свои ΠΆΠ΅ классы ΠΈ количСство Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… классов Π±ΡƒΠ΄Π΅Ρ‚ нСбольшоС. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ссли Π²Ρ‹ внСсСтС измСнСния Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ класса, ΠΈ Π²Π°ΠΌ понадобится ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ всС Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ классы, Ρ‚ΠΎ Π²Ρ‹ смоТСтС ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ эти обновлСния сами ΠΈ это Π½Π΅ Π·Π°ΠΉΠΌΠ΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ (Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… классов Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ).

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ private-Ρ‡Π»Π΅Π½ΠΎΠ² прСдоставляСт Π»ΡƒΡ‡ΡˆΡƒΡŽ ΠΈΠ½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡŽ ΠΈ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ классы ΠΎΡ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π²Ρ‹Π·Π²Π°Π½Π½Ρ‹Ρ… Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΌΠΈ классами. Но Ρ†Π΅Π½Π° этому β€” Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ созданиС ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΠΎΠ³ΠΎ интСрфСйса (способа взаимодСйствия Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² с классами ΠΈ ΠΈΡ… Ρ‡Π»Π΅Π½Π°ΠΌΠΈ, Ρ‚.Π΅. Π³Π΅Ρ‚Ρ‚Π΅Ρ€Ρ‹ ΠΈ сСттСры). Π­Ρ‚ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π°, которая Π½Π΅ стоит Ρ‚ΠΎΠ³ΠΎ, Ссли Π²Ρ‹ сами Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ со своими ΠΆΠ΅ классами (Ρ‡ΡƒΠΆΠΈΠ΅ классы Π½Π΅ ΠΎΠ±Ρ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ классу) ΠΈ количСство Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… классов нСбольшоС.

Π’ΠΈΠΏΡ‹ наслСдований. Доступ ΠΊ Ρ‡Π»Π΅Π½Π°ΠΌ

БущСствуСт Ρ‚Ρ€ΠΈ Ρ‚ΠΈΠΏΠ° наслСдований классов:

public;

private;

protected.

Для опрСдСлСния Ρ‚ΠΈΠΏΠ° наслСдования Π½ΡƒΠΆΠ½ΠΎ просто ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½ΠΎΠ΅ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово Π²ΠΎΠ·Π»Π΅ наслСдуСмого класса:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ИспользованиС спСцификатора protected для наслСдования Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса

Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ protected ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для придания Ρ‡Π»Π΅Π½Π°ΠΌ класса статуса «Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΠΎΡΡ‚ΠΈ», Π½ΠΎ ΠΈ для наслСдования Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса. Если Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс наслСдуСтся ΠΊΠ°ΠΊ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹ΠΉ, всС Π΅Π³ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ Ρ‡Π»Π΅Π½Ρ‹ становятся Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹ΠΌΠΈ Ρ‡Π»Π΅Π½Π°ΠΌΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ класса. Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

Об использовании спСцификаторов public, protected ΠΈ private

ΠŸΡ€ΠΈ объявлСнии Ρ‡Π»Π΅Π½Π° класса ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ (с использованиСм ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова public ) ΠΊ Π½Π΅ΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΈΠ· любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ части ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Если Ρ‡Π»Π΅Π½ класса ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ (с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ спСцификатора private ), ΠΊ Π½Π΅ΠΌΡƒ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ доступ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π»Π΅Π½Ρ‹ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ класса. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ Ρ‡Π»Π΅Π½Π°ΠΌ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ доступа Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Π΅ классы. Если ΠΆΠ΅ Ρ‡Π»Π΅Π½ класса ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹ΠΌ (protected ‑члСном), ΠΊ Π½Π΅ΠΌΡƒ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ доступ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π»Π΅Π½Ρ‹ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Ρ… классов. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, спСцификатор protected позволяСт Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Π»Π΅Π½Ρ‹, Π½ΠΎ оставляСт ΠΈΡ… Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌΠΈ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ классов.

Π’ΠΎ всСх случаях private ‑члСны Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌΠΈ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… этого класса ΠΈ Π½Π΅ Π½Π°ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ΡΡ.

НаслСдованиС Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π±Π°Π·ΠΎΠ²Ρ‹Ρ… классов

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· этого ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ наслСдованиС Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π±Π°Π·ΠΎΠ²Ρ‹Ρ… классов, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‡Π΅Ρ€Π΅Π· Π·Π°ΠΏΡΡ‚ΡƒΡŽ ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ ΠΈΡ… ΠΈΠΌΠ΅Π½Π° Π² Π²ΠΈΠ΄Π΅ списка. ΠŸΡ€ΠΈ этом Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ спСцификатор доступа для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ наслСдуСмого Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса.

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€Ρ‹, дСструкторы ΠΈ наслСдованиС

ΠŸΡ€ΠΈ использовании ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° наслСдования ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π΄Π²Π° Π²Π°ΠΆΠ½Ρ‹Ρ… вопроса, связанных с конструкторами ΠΈ дСструкторами. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ: ΠΊΠΎΠ³Π΄Π° Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ конструкторы ΠΈ дСструкторы Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ классов? Π’Ρ‚ΠΎΡ€ΠΎΠΉ: ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ конструктору Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса? ΠžΡ‚Π²Π΅Ρ‚Ρ‹ Π½Π° эти вопросы ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Ρ‹ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅.

Когда Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ конструкторы ΠΈ дСструкторы

Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΈ/ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΉ класс ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ конструктор ΠΈ/ΠΈΠ»ΠΈ дСструктор. Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ порядок, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ эти Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΡ€ΠΈ создании ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ класса ΠΈ Π΅Π³ΠΎ (ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°) Ρ€Π°Π·Ρ€ΡƒΡˆΠ΅Π½ΠΈΠΈ.

Рассмотрим ΠΊΠΎΡ€ΠΎΡ‚ΠΊΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ.

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€Ρ‹ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² порядкС происхоТдСния классов, Π° дСструкторы – Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядкС.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π²Ρ‹ΡˆΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ экспСримСнта ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. ΠŸΡ€ΠΈ создании ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ класса сначала вызываСтся конструктор Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса, Π° Π·Π° Π½ΠΈΠΌ – конструктор ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ класса. ΠŸΡ€ΠΈ Ρ€Π°Π·Ρ€ΡƒΡˆΠ΅Π½ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ класса сначала вызываСтся Π΅Π³ΠΎ «Ρ€ΠΎΠ΄Π½ΠΎΠΉ» конструктор, Π° Π·Π° Π½ΠΈΠΌ – конструктор Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, конструкторы Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² порядкС происхоТдСния классов, Π° дСструкторы – Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядкС.

Π’ΠΏΠΎΠ»Π½Π΅ Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ, Ρ‡Ρ‚ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ конструкторов Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π² порядкС происхоТдСния ΠΈΡ… классов. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс «Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π·Π½Π°Π΅Ρ‚» Π½ΠΈ ΠΎ ΠΊΠ°ΠΊΠΎΠΌ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠΌ классС, ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅ΠΌΡƒ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ, Π½Π΅ зависят ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, выполняСмых ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΌ классом, Π½ΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΠΎΠ·Π΄Π°ΡŽΡ‚ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ условия для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ конструктор Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ.

Аналогичная Π»ΠΎΠ³ΠΈΠΊΠ° присутствуСт ΠΈ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ дСструкторы Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π² порядкС, ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядку происхоТдСния классов. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс Π»Π΅ΠΆΠΈΡ‚ Π² основС ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ класса, Ρ€Π°Π·Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, дСструктор ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ класса ΠΈΠΌΠ΅Π΅Ρ‚ смысл Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Ρ€Π°Π·Ρ€ΡƒΡˆΠ΅Π½.

ΠŸΡ€ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠΉ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ классов (Ρ‚.Π΅. Π² ситуации, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΉ класс становится Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ классом для Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ) примСняСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ ΠΎΠ±Ρ‰Π΅Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ: конструкторы Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² порядкС происхоТдСния классов, Π° дСструкторы – Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядкС. НапримСр, ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹:

Π’ΠΎ ΠΆΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ примСняСтся ΠΈ Π² ситуациях, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΉ класс наслСдуСт нСсколько Π±Π°Π·ΠΎΠ²Ρ‹Ρ… классов. НапримСр, ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹:

Ρ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ выполнСния ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±Ρ‹Π»ΠΈ Π±Ρ‹ Ρ‚Π°ΠΊΠΈΠΌΠΈ:

Π”Π°Ρ‚Π° добавлСния: 2018-09-22 ; просмотров: 347 ; ΠœΡ‹ ΠΏΠΎΠΌΠΎΠΆΠ΅ΠΌ Π² написании вашСй Ρ€Π°Π±ΠΎΡ‚Ρ‹!

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

BestProg

ΠŸΠ΅Ρ€Π΅Π΄ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π΄Π°Π½Π½ΠΎΠΉ Ρ‚Π΅ΠΌΡ‹ рСкомСндуСтся ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π΅ΠΌΠΎΠΉ:

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

Поиск Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… рСсурсах:

1. ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ примСнСния ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² доступа ΠΏΡ€ΠΈ наслСдовании классов

ΠžΠ±Ρ‰Π°Ρ Ρ„ΠΎΡ€ΠΌΠ° задания уровня доступа ΠΊ Π±Π°Π·ΠΎΠ²ΠΎΠΌΡƒ класса ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ:

2. ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ доступа private для Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса.
2.1. ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ доступа для унаслСдованных классов

ΠΊΠ°ΠΊΠΈΠ΅ утвСрТдСния Π²Π΅Ρ€Π½Ρ‹ ΠΊΠΎΠ³Π΄Π° Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс наслСдуСтся ΠΏΠΎ спСцификатору protected. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ утвСрТдСния Π²Π΅Ρ€Π½Ρ‹ ΠΊΠΎΠ³Π΄Π° Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс наслСдуСтся ΠΏΠΎ спСцификатору protected. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ утвСрТдСния Π²Π΅Ρ€Π½Ρ‹ ΠΊΠΎΠ³Π΄Π° Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс наслСдуСтся ΠΏΠΎ спСцификатору protected. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ утвСрТдСния Π²Π΅Ρ€Π½Ρ‹ ΠΊΠΎΠ³Π΄Π° Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс наслСдуСтся ΠΏΠΎ спСцификатору protected. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ утвСрТдСния Π²Π΅Ρ€Π½Ρ‹ ΠΊΠΎΠ³Π΄Π° Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс наслСдуСтся ΠΏΠΎ спСцификатору protected

Рисунок 1. ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ доступа private для класса. ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ доступа для класса C Π² ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ классов

2.2. ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ доступа для экзСмпляров (ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²) унаслСдованных классов

ΠΊΠ°ΠΊΠΈΠ΅ утвСрТдСния Π²Π΅Ρ€Π½Ρ‹ ΠΊΠΎΠ³Π΄Π° Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс наслСдуСтся ΠΏΠΎ спСцификатору protected. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ утвСрТдСния Π²Π΅Ρ€Π½Ρ‹ ΠΊΠΎΠ³Π΄Π° Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс наслСдуСтся ΠΏΠΎ спСцификатору protected. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ утвСрТдСния Π²Π΅Ρ€Π½Ρ‹ ΠΊΠΎΠ³Π΄Π° Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс наслСдуСтся ΠΏΠΎ спСцификатору protected. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ утвСрТдСния Π²Π΅Ρ€Π½Ρ‹ ΠΊΠΎΠ³Π΄Π° Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс наслСдуСтся ΠΏΠΎ спСцификатору protected. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ утвСрТдСния Π²Π΅Ρ€Π½Ρ‹ ΠΊΠΎΠ³Π΄Π° Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс наслСдуСтся ΠΏΠΎ спСцификатору protected

Рисунок 2. ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ доступа private для класса. НСт доступа ΠΊ элСмСнту Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса A ΠΈΠ· экзСмпляра ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ класса B

3. ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ доступа protected

ΠΊΠ°ΠΊΠΈΠ΅ утвСрТдСния Π²Π΅Ρ€Π½Ρ‹ ΠΊΠΎΠ³Π΄Π° Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс наслСдуСтся ΠΏΠΎ спСцификатору protected. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ утвСрТдСния Π²Π΅Ρ€Π½Ρ‹ ΠΊΠΎΠ³Π΄Π° Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс наслСдуСтся ΠΏΠΎ спСцификатору protected. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ утвСрТдСния Π²Π΅Ρ€Π½Ρ‹ ΠΊΠΎΠ³Π΄Π° Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс наслСдуСтся ΠΏΠΎ спСцификатору protected. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ утвСрТдСния Π²Π΅Ρ€Π½Ρ‹ ΠΊΠΎΠ³Π΄Π° Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс наслСдуСтся ΠΏΠΎ спСцификатору protected. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ утвСрТдСния Π²Π΅Ρ€Π½Ρ‹ ΠΊΠΎΠ³Π΄Π° Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс наслСдуСтся ΠΏΠΎ спСцификатору protected

ΠΊΠ°ΠΊΠΈΠ΅ утвСрТдСния Π²Π΅Ρ€Π½Ρ‹ ΠΊΠΎΠ³Π΄Π° Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс наслСдуСтся ΠΏΠΎ спСцификатору protected. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ утвСрТдСния Π²Π΅Ρ€Π½Ρ‹ ΠΊΠΎΠ³Π΄Π° Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс наслСдуСтся ΠΏΠΎ спСцификатору protected. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ утвСрТдСния Π²Π΅Ρ€Π½Ρ‹ ΠΊΠΎΠ³Π΄Π° Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс наслСдуСтся ΠΏΠΎ спСцификатору protected. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ утвСрТдСния Π²Π΅Ρ€Π½Ρ‹ ΠΊΠΎΠ³Π΄Π° Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс наслСдуСтся ΠΏΠΎ спСцификатору protected. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ утвСрТдСния Π²Π΅Ρ€Π½Ρ‹ ΠΊΠΎΠ³Π΄Π° Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс наслСдуСтся ΠΏΠΎ спСцификатору protected

4. ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ доступа public

Рисунок 5 дСмонстрируСт Π²Ρ‹ΡˆΠ΅ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π°.

ΠΊΠ°ΠΊΠΈΠ΅ утвСрТдСния Π²Π΅Ρ€Π½Ρ‹ ΠΊΠΎΠ³Π΄Π° Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс наслСдуСтся ΠΏΠΎ спСцификатору protected. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ утвСрТдСния Π²Π΅Ρ€Π½Ρ‹ ΠΊΠΎΠ³Π΄Π° Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс наслСдуСтся ΠΏΠΎ спСцификатору protected. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ утвСрТдСния Π²Π΅Ρ€Π½Ρ‹ ΠΊΠΎΠ³Π΄Π° Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс наслСдуСтся ΠΏΠΎ спСцификатору protected. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ утвСрТдСния Π²Π΅Ρ€Π½Ρ‹ ΠΊΠΎΠ³Π΄Π° Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс наслСдуСтся ΠΏΠΎ спСцификатору protected. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ утвСрТдСния Π²Π΅Ρ€Π½Ρ‹ ΠΊΠΎΠ³Π΄Π° Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс наслСдуСтся ΠΏΠΎ спСцификатору protected

Рисунок 5. ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ доступа public для унаслСдованного класса

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

1)Бколько ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ main?
Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΎΠ΄ΠΈΠ½ ΠΎΡ‚Π²Π΅Ρ‚:
a. Один
b. Ну, Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Ρ‚Ρ€ΠΈ
c. Π”Π²Π°
d. Бколько ΡƒΠ³ΠΎΠ΄Π½ΠΎ
e. Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ для этого ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½, ΠΎΠ½ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π±Π°Π·ΠΎΠ²ΠΎΠ³

2)КакоС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° количСство ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… конструкторов Π² описании класса?
Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΎΠ΄ΠΈΠ½ ΠΎΡ‚Π²Π΅Ρ‚:
a. На количСство ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… конструкторов Π² описании класса ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ Π½Π΅Ρ‚.
b. Π’ описании класса допустимы Ρ‚ΠΎΠ»ΡŒΠΊΠΎ конструкторы ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈ конструктор ΠΊΠΎΠΏΠΈΠΈ.
c. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… конструкторов Π² описании класса Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ.
d. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… конструкторов ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ дСсяти.

3)КакоС Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ€Π°Π·Π΄Π΅Π»Π° ΠΌΠΎΠΆΠ½ΠΎ явно Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π² описании класса?
Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΎΠ΄ΠΈΠ½ ΠΎΡ‚Π²Π΅Ρ‚:
a. protected
b. public
c. private

4)КакиС утвСрТдСния Π²Π΅Ρ€Π½Ρ‹ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ?
Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ²:
a. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ возвращаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ инструкции return.
b. Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ всСгда ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ const.
c. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π² качСствС Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.
d. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π² качСствС Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния ΠΌΠ΅Ρ‚ΠΎΠ΄Π°.

5)КакиС утвСрТдСния Π²Π΅Ρ€Π½Ρ‹, ΠΊΠΎΠ³Π΄Π° Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс наслСдуСтся ΠΏΠΎ спСцификатору public?
Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ²:
a. Π—Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ элСмСнты Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса становятся Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌΠΈ Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠΌ.
b. Π—Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹Π΅ элСмСнты Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса становятся ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌΠΈ Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠΌ классС.
c. Π—Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ элСмСнты Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса становятся Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹ΠΌΠΈ Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠΌ.
d. Π—Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹Π΅ элСмСнты Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса становятся Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹ΠΌΠΈ Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠΌ классС.
e. ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ элСмСнты Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса становятся ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌΠΈ Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠΌ классС.

ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Ρ…, курсовых ΠΈ Π΄ΠΈΠΏΠ»ΠΎΠΌΠ½Ρ‹Ρ… Ρ€Π°Π±ΠΎΡ‚ здСсь.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *