Inheirtnace Part I (Lecture 36)-YraxnPsxZgc 42.9 KB
Newer Older
Vandan Mujadia's avatar
update  
Vandan Mujadia committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116
 ప్రోగ్రామింగ్ ఇన్ సి ++ మౌడ్యూల్ 21 కు స్వాగతం.
 ఈ మాడ్యూల్ లో మాడ్యూల్స్ యొక్క తరువాతి సంఖ్యలో కొనసాగుతున్నందున, మనము ఒక ఆబ్జెక్ట్ ఓరియంటెడ్ ప్రోగ్రామింగ్ లాంగ్వేజ్ యొక్క అత్యంత ముఖ్యమైన అంశంపై చర్చను ప్రారంభించబోతున్నాం, ఇది క్లాస్ ల్లోని మరియు ఆబ్జెక్ట్ మధ్య ఇన్హెరిటెన్స్(inheritance) వ్యవహారం.
 మనము ఇంతవరకు సి++ లో క్లాస్ లను ఎలా డిఫైన్, ఆబ్జెక్ట్స్ ఇప్పటికి ఎలా instantiated చేయాలో తెలుసుకున్నాం.
 మేము వివిధ డేటా మెంబర్ల మరియు క్లాస్ యొక్క మెంబర్ ఫంక్షన్ ల సామర్ధ్యం గురించి నేర్చుకున్నాము.
 మనము కన్స్ట్రక్షన్ మరియు డిస్ట్రక్షన్ ప్రోసెస్ మరియు ఆబ్జెక్ట్ ల వివిధ lifetime సమస్యల గురించి తెలుసుకున్నాము.
 వివిధ రకాల ఎక్స్టెన్షన్ లేదా ఎక్సెప్షన్ యొక్కఎన్కాప్సులేషన్ అనుగుణంగా ఉండే ఇతర లక్షణాల గురించి మనం మాట్లాడాము, ఫ్రెండ్ ఫంక్షన్ పరంగా, ఫంక్షన్ యాక్సెస్ మరియు స్టాక్ ఫంక్షన్ల పరంగా ఫంక్షన్స్, మరియు వివిధ మెంబర్ ఫంక్షన్ మరియు గ్లోబల్ ఫంక్షన్ల ఓవర్లోడింగ్ చేయవచ్చు.
 ఇప్పుడు, ఇన్హెరిటెన్స్ అనేది ఆబ్జెక్ట్ యొక్క ఆధార రూపకల్పనల డిజైన్ యొక్క ప్రధాన వెన్నెముకను నిర్మించడానికి ఈ అవగాహనను అన్నిటినీ మిళితం చేస్తుంది.
 అందువలన, మనము ఈ లోతైన అధ్యయనం మొదలు ముందు నేను అన్ని మీరు సవరించడానికి మరియు మేము చాలా చర్చించారు అని C + + యొక్క వివిధ లక్షణాల గురించి చాలా క్షుణ్ణంగా ఉద్భవించటానికి ముందు మేము ఇప్పుడు చాలా తరచుగా క్రమంగా వాటిని అన్ని సూచిస్తూ ఉంటాను .
 ఇప్పుడు, నేను చెప్పినట్లుగా ఇన్హెరిటెన్స్ గురించి చర్చించడం కోసం ఇది అనేక మాడ్యూల్స్పై విస్తరించింది.
 ఈ ప్రత్యేక మాడ్యూల్ లో, ISA రిలేషన్షిప్ లేదా ఆబ్జెక్ట్ ఓరియెంటెడ్ అనాలిసిస్ అండ్ డిజైన్ యొక్క క్రమానుగత పునఃసృష్టిని మేము పరిశీలించాము మరియు C ++ ఇన్హెరిటెన్స్ పరంగా ఎలా క్రియేట్ చేయాలో చూద్దాం.
 నేను ఇక్కడ అందించే ఆకారం కొద్దిగా భిన్నంగా నిర్వహించబడింది.
 ఇది ప్రస్తుత మాడ్యూల్ యొక్క సరిహద్దు మాత్రమే కాదు.
 ఇది C ++ లో ఇన్హెరిటెన్స్ మొదటి స్థాయి వద్ద చర్చించడానికి ఉద్దేశించినది.
 ఈ విషయంలో కొన్ని తదుపరి సీక్వెల్ ఉంటుంది, ఇది మేము ఇన్హెరిటెన్స్ గురించి మాట్లాడే ఒక డైనమిక్ సినారియో లో మాట్లాడతాము, కానీ ఇది ఇన్హెరిటెన్స్ ప్రాథమిక పునాది అంశాలను.
 మనం ఏమి చేస్తామో, మనము ఒక మాడ్యూల్ నుండి మరొక వైపుకు వెళ్ళేటప్పుడు ప్రత్యేక అంశములను మనము నీలం రంగు పరంగా చర్చించబోతున్నాము.
 కాబట్టి, మీరు ఈ మొత్తాన్ని పరిశీలించినట్లయితే, మాడ్యూల్ 21 లో చర్చించాలని మేము కోరుతున్నాము.
 ఇప్పుడు మనము ప్రారంభించాము.
 కాబట్టి, మేము ISA సంబంధాన్ని గురించి తెలుసుకున్నాము, ఈ కోర్సులో మేము దాని గురించి మాట్లాడలేదు మరియు మీరు ఈ విషయంలో కూడా బాగా తెలిసి ఉండవచ్చు, వాస్తవిక ప్రపంచంలో మనం మరొక ఆబ్జెక్ట్ యొక్క specialization లేదా generalization అని తరచుగా తెలుసుకుంటాం.
 స్పెషలైజేషన్ మరియు సాధారణీకరణ ప్రధానమైనవి.
 కాబట్టి, ఒక ఆబ్జెక్ట్ ఇతర specialized లేదా generalized రూపం మరియు ISA సంబంధం మరియు ఆబ్జెక్ట్ ఓరియెంటెడ్ అనాలిసిస్ అని పిలుస్తారు మరియు డిజైన్ ఈ లోతైన మరియు C ++ నమూనాలో ఈ ISA సంబంధాన్ని క్లాసుల ఇన్హెరిటెన్స్ తో పరిగణిస్తుంది.
 కాబట్టి, C ++ యొక్క ఇన్హెరిటెన్స్ లాజిక్ లోకి రావడానికి ముందు, మాకు త్వరగా ISA సంబంధాన్ని పరిశీలించండి.
 మీరు స్పెషలైజేషన్ generalization ఏమి చెపుతున్నారో చెప్పండి.
 అనుకుందాం, మేము ISA పువ్వు పెరిగింది అని అనుకుంటాను.
 సో, ISA పువ్వు గులాబీ చెప్పడం ద్వారా మీరు అర్థం ఏమిటి. మేము గులాబీ అని అర్థం, ఇది ప్రత్యేకమైనది, ఇది గులాబీకి ప్రత్యేకమైన పువ్వు అని పిలుస్తారు, ఇది పువ్వును కలిగి ఉన్న అన్ని లక్షణాలను కలిగి ఉంది, ఎప్పుడైనా మేము పుష్పం అని చెప్పినప్పుడు; కొన్ని భావాలు మా మనసులోకి వస్తాయి, అది సువాసన కలిగి ఉంటుంది, అది ప్రకాశవంతమైన రంగు కలిగి ఉంటుంది, అది రేకులు మరియు అందువలన ఉంటుంది.
 అందువల్ల, గులాబి పువ్వు కలిగి ఉన్న అన్ని లక్షణాలను కలిగి ఉంది.
 కానీ అదనంగా, గులాబీలో కొన్ని అదనపు లక్షణాలను కలిగి ఉంది, అందుకే మీరు ప్రత్యేకంగా చేయాలనుకుంటున్నారు.
 ఉదాహరణకు, గులాబీ చాలా నిర్దిష్టమైన రోసీ సువాసనను కలిగి ఉంటుంది, ఇది చాలా ఇతర పుష్పాల యొక్క సువాసన వలె లేదు.
 కాబట్టి, ఇది పూర్తి అయినప్పుడు మనం పూల స్పెషలైజేషన్ అని చెపుతాము మరియు మనము ఒక రివర్స్ రీతిలో అదే విషయం చెప్పగలము.
 పుష్పం రోజ్ యొక్క generalization అని మేము చెప్పగలను.
 కాబట్టి, మళ్లీ ఎర్ర గులాబీ మరియు గులాబి ఉన్నట్లయితే, ఎరుపు గులాబీ ISA గులాబీ ప్రొపర్టీస్ కలిగి ఉన్న రెడ్ గులాబీ రంగులో ఉన్నట్లయితే మనం ఎరుపు గులాబి అన్నీ లక్షణాలను కలిగి ఉంటుంది, కానీ అది ఎరుపు రంగులో ఉన్నట్లుగా ఇది ఒక అదనపు ఆస్తి కలిగి ఉంది మరియు ఇది గులాబీ మరియు ఎరుపు మధ్య ఉన్న సాధారణీకరణ ప్రత్యేకత.
 కాబట్టి, నేను ఇక్కడ గీసిన దాని పరంగా, మీరు చాలామంది దీనిని UML generalization గా పిలుస్తారని మీకు తెలుస్తుంది.
 యూనిఫైడ్ మోడలింగ్ లాంగ్వేజ్ అనేది ఆబ్జెక్ట్ ఓరియెంటెడ్ రీతిలో సిస్టమ్ ను వివరించడానికి ఒక బలమైన లాంగ్వేజ్.
 కాబట్టి, ఈ క్లాస్ లు మరియు చివరికి ఓపెన్ త్రిభుజం triangle తో ముగుస్తుంది ఈ arrow ప్రత్యేకతను అర్థం.
 కాబట్టి, ఇది చదివేది; arrow యొక్క దిశగా ఉన్న ISA పువ్వు పెరిగింది, ఎరుపు పెరిగింది ISA గులాబీ మరియు అందువలన న.
 కాబట్టి, రేఖాచిత్రంగా మేము ఈ రేఖాచిత్రాల పరంగా ఇన్హెరిటెన్స్ లేదా స్పెషలైజేషన్ generalization ను తరచుగా వర్ణిస్తాము.
 అదేవిధంగా, మేము కలిగి ఉండవచ్చు; మనం చెప్తాము అని చెప్పవచ్చు, ఇది చుట్టూ తిరగడానికి ఉపయోగించే ఒక వాహనం.
 కాబట్టి, మేము Twowheelers లో చుట్టూ తరలించవచ్చు, కాబట్టి మేము Twowheeler ISA వాహనం చెప్పగలను.
 అదేవిధంగా, Threewheelers ISA వాహనం, కానీ మేము వాహనం పరంగా generalization మరియు 3 చక్రాల మరియు 2 చక్రాల వాహనం యొక్క రెండు వేర్వేరు స్పెషలైజేషన్ అని కేటాయించవచ్చు.
 కాబట్టి, generalization మరియు స్పెషలైజేషన్ మల్టిపుల్ రకాలుగా చెప్పవచ్చు.
 కాబట్టి, ఇది ఒక generalized భావన ఉన్న ఒక రకంగా మరియు దాని కోసం మల్టిపుల్ specialized అంశాలు ఉన్నాయి.
 మేము సాధారణంగా దీనిని ఒక ఆధారంగా సూచిస్తాము మరియు వీటిని మేము డిరైవ్ చేస్తాము.
 వేర్వేరు ల్యాంగ్వేజ్ లో వివిధ పదాలను ఉపయోగించుకుంటాయి, ఉదాహరణకు, మీరు జావా గురించి తెలిసిన వారిలో, ఈ బేస్ లేదా generalization ను సూపర్ క్లాస్గా మరియు సబ్క్లాస్గా తీసుకున్న లేదా స్పెషలైజేషన్ గా గుర్తిస్తాము.
 కొన్ని సందర్భాల్లో, అత్యంత సాధారణమైన ప్రత్యేకమైన క్లాస్ నను తరచుగా రూట్గా సూచించబడుతుంది.
 ఇంకా ISA సంబంధం మరొక ఉదాహరణ ఎంప్లాయ్ డొమైన్ నుండి కావచ్చు.
 మేనేజర్ ISA ఎంప్లాయ్ అని మేము చెబుతున్నాము, అంటే మేనేజర్ యొక్క అన్ని ఫంక్షన్లు నిర్వర్తించగలమని, కానీ ఎంప్లాయ్ కొన్నింటిని చేయగలడు; మేనేజర్ కొన్ని ఫంక్షన్లు చేయవచ్చు ఎంప్లాయ్ చేయలేరు, బహుశా మేనేజర్ తమను చేయలేని ఎంప్లాయ్ ఎంప్లాయ్ లను నియామకం చేయవచ్చు.
 కాబట్టి, ఇది C ++ ప్రోగ్రామింగ్ సందర్భంలో మనము తీసుకురావాలనే ISA సంబంధానికి సంబంధించిన ప్రాథమిక భావన.
 కాబట్టి, దీనిలో C ++ లో generalization స్పెషలైజేషన్ యొక్క సమాచారాన్ని ఎన్కోడ్ చేయాలనుకుంటే నేను ఇలా చేస్తాను.
 కాబట్టి, ఈ కేసుల్లో సరళమైనది మేనేజర్ ISA ఎంప్లాయ్, ఇక్కడ మేము కేవలం రెండు క్లాస్ లను కలిగి ఉన్న మరొకదాని ప్రత్యేకత ఉంది.
 కాబట్టి, మేము సాధారణంగా దీనిని ఒకే ఇన్హెరిటెన్స్ సూచించండి ఎందుకంటే ఇక్కడ మీరు కేవలం ఒకే సంబంధం కలిగి ఉంటారు.
 సో, మేము ఒక క్లాస్ ను వ్రాయండి, ఎంప్లాయ్ రెప్రెజెంటేషన్, క్లాస్ ఎంప్లాయ్ చెప్పండి.
 ఇక్కడ, నేను ఒక రకమైన ఉపయోగించాను మీరు ఒక క్లాస్ యొక్క అసంపూర్తిగా డెఫినిషన్ ని తెలుసు.
 ఇది డెఫినిషన్ కలిగి ఉండదు, ఇది కేవలం ఎంప్లాయ్ అని పిలవబడుతున్న ఒక క్లాస్ ఉందని చెప్పడం వలన మేము తరువాత డేటా మెంబర్ ని మరియు మెంబర్ ఫంక్షన్ వివరాలను పరిశీలిస్తాము.
 క్లాస్ మధ్య సంబంధాన్ని నిర్వచించేందుకు మేము ఆసక్తి కలిగి ఉంటాము.
 అందువల్ల, ఈ రూపంలో మేనేజర్ ఎంప్లాయ్ అని ఇప్పుడు మనం చెప్తున్నాం. కాబట్టి, ఇక్కడ మీరు చేస్తున్న క్లిష్టమైన అదనంగా, క్లాస్ మేనేజర్ కి తర్వాత, విభజన ఉంది అని చూడవచ్చు: ఆపై నేను ఒక కొత్త పదమును పబ్లిక్ గా మరియు తరువాత ఎంప్లాయ్ క్లాస్ నేమ్ ను పెట్టుకున్నాను OOAD నిబంధనలు, ఇది మేనేజర్ ISA ఎంప్లాయ్ లేదా మేనేజర్ ఎంప్లాయ్ నుండి డిరైవ్(derive )చేసినట్లుగా చదవబడుతుంది.
 సో, ఉద్యోగి బేస్ క్లాస్ మరియు మేనేజర్ ఒక డిరైవ్ క్లాస్.
 ద్విచక్ర వాహన వాహన ఉదాహరణలో; ఈ రేఖాచిత్రం ఇచ్చినప్పుడు మేము నిజానికి హైబ్రీడ్ ఇన్హెరిటెన్స్ తో వ్యవహరిస్తాము.
 హైబ్రీడ్ ఇన్హెరిటెన్స్ అనేది ఒక ప్రాథమిక క్లాస్ కి ఒకటి కంటే ఎక్కువ స్పెషలైజేషన్ ఉన్న సందర్భం మరియు మేము సులభంగా వాహనం అయిన రూట్ క్లాస్ ప్రకారం సి ++ లో దానిని సులభంగా ఎన్కోడ్ చేయవచ్చు.
 అప్పుడు మేము టూవీలర్ అని పిలిచే వాహనం అని పిలుస్తాము: పబ్లిక్ వెహికల్.
 త్రీవీలర్స్ అనేది టూవీలర్ యొక్క వాహనం: పబ్లిక్ వాహనం.
 కాబట్టి, అక్కడ ఒక రూట్ క్లాస్ మరియు అక్కడ ఒక బేస్ క్లాస్ మరియు ఈ రెండు డిరైవ్డ్ క్లాస్ లు ఉన్నాయి.
 చివరగా, గులాబీ ఉదాహరణకి వస్తే, మనం మల్టీలెవల్ ఇన్హెరిటెన్స్ పిలువబడుతున్నాము ఎందుకంటే ఇది ఒక స్థాయి, ఇది మరొక స్థాయి.
 సో, ఇది ఒక మల్టీలెవల్ ఇన్హెరిటెన్స్ RedRose ISA రోజ్ ISA పువ్వు ఉంది.
 కాబట్టి, ఇక్కడ పువ్వు బేస్ క్లాస్ మరియు డిరైవ్డ్ క్లాస్ రోజ్, కానీ మేము తదుపరి జత సంబంధాన్ని పరిశీలిస్తే అప్పుడు రోస్ బేస్ క్లాస్ గామారుతుంది మరియు RedRose నుండి డిరైవ్డ్ క్లాస్ గా మారుతుంది.
 కాబట్టి, ఒక ప్రత్యేక క్లాస్ అనేది బేస్ క్లాస్ గా లేదా ఒక డిరైవ్డ్ క్లాస్ గా నిర్ణయించబడకపోవడమనేది ఆ క్లాస్ పై ఆధారపడినది కాదు, అది క్లాస్ hierarchy పై ఎక్కడ ఉంది అనే దానిపై ఆధారపడి ఉంటుంది.
 క్లాస్ లో లీఫ్ ,ఆ లీఫ్, ఇది మీది కాదుఏ ఇతర క్లాస్ లకు ప్రత్యేకంగా తెలుసు అనేదానిని తప్పనిసరిగా క్లాస్ కి చెందినదిగా గుర్తిస్తారు.
 ఏ క్లాస్ కైన సూపర్ క్లాస్ కానీ లేదా పేరెంట్ గానీ లేని బేస్ క్లాస్ మరియు రూట్ క్లాస్ తప్పనిసరిగా ఉండదు, కానీ మధ్యలో ఉన్న వంటి క్లాస్ లకు ఇన్హెరిటెన్స్ ఇతర భాగానికి ఇన్హెరిటెన్స్ మరియు రూట్ క్లాస్ లో ఒక భాగం కోసం క్లాస్ నుండి డిరైవ్ చేయబడుతుంది, మరియు మేము విభిన్న కాంప్లెక్స్ మరియు హైబ్రిడ్ రకమైన ఇన్హెరిటెన్స్ స్ట్రక్చర్ కలిగి ఉన్నాము, మేము C ++ లో ఎన్కోడ్ చేయాలనుకుంటున్నాము.
 కాబట్టి, ఇక్కడ నేను ఒక ఉదాహరణగా కొంచెం విభిన్న రకాన్ని తీసుకుంటాను.
 మేము అన్ని ఫోన్లతో సుపరిచితులు, మీరు అన్ని రకాల ఫోన్లను ఉపయోగిస్తున్నారు.
 సో, నేను మాట్లాడుతున్నాను, మేము నేడు సాధారణమైన 3 సాధారణ రకాల ఫోన్లను పరిగణలోకి తీసుకుంటే; ల్యాండ్లైన్ ఫోన్, మొబైల్ ఫోన్ మరియు స్మార్ట్ ఫోన్, అప్పుడు మేము ఉందని చూడవచ్చు; మరియు నేను ఇక్కడ చేయడానికి ప్రయత్నిస్తున్న అన్ని మేము ఈ ఫోన్లు మానసికంగా అనుబంధం కార్యాచరణ అసోసియేట్ రకం.
 కాబట్టి, ల్యాండ్లైన్ ఫోను చెప్పండి, మీరు అసోసియేట్ చేస్తారనే కార్యాచరణ ఉంటుంది; మీరు కాల్ చేయవచ్చు, మీరు కాల్కు సమాధానం చెప్పవచ్చు.
 ఒక మొబైల్ ఫోన్ కోసం మీరు స్పష్టంగా, అలా అన్ని చేయవచ్చు, కానీ మీరు చాలా మొబైల్ ఫోన్ లో, మీరు గత సంఖ్య redial చేయగలరు, మీరు ఒక రింగ్ టోన్ సెట్ చేయగలరు, చాలా ఇతర విషయాలు చేయవచ్చు బహుశా మీరు మీ పరిచయాలను సంఖ్య మరియు పేరుతో పెట్టవచ్చు మరియు తద్వారా మొదలగునవి, అనేకమంది ఇతరులు ఉండవచ్చు.
 కాబట్టి, ల్యాండ్లైన్ ఫోన్ యొక్క ప్రాథమిక ఫంక్షనాలిటీ కూడా మొబైల్ ఫోన్ ద్వారా సంతృప్తి చెందిందని నేను చూడగలను, ఇది ఇప్పటికే ఉనికిలో ఉంది.
 కాబట్టి, ఒక మొబైల్ ఫోన్ ISA ల్యాండ్లైన్ ఫోన్ అని నేను చెప్పగలను.
 ఈ ISA అది అదే అని కాదు, కానీ మొబైల్ ఫోన్ సంతృప్తి చేయవచ్చు అన్ని ఫంక్షనాలిటీ ను మొబైల్ ఫోన్ సంతృప్తి చేయవచ్చు అర్థం.
 అదేవిధంగా, నేను ఒక స్మార్ట్ ఫోన్కు వచ్చినట్లయితే, కాల్ మరియు జవాబు యొక్క ఈ ఫంక్షనాలిటీ ను నేను మళ్లీ కలిగి ఉంటాను, వీటిని అన్నింటినీ redial చేసుకోవచ్చు, కానీ నేను అదనపు ఫంక్షనాలిటీ ను కలిగి ఉండవచ్చు.
 నా కాన్టాక్ట్ కు (contact ) సంబంధించి ఒక ఫోటోగ్రాఫ్ ను అనుసంధానించగలగడం మరియు నేను నా కాన్టాక్ట్ తో ఫోటోను అనుసంధానించేటప్పుడు అప్పుడు కాల్ సమయంలో లేదా కాల్ చేసేటప్పుడు బహుశా స్మార్ట్ ఫోన్, కాల్ అందుకోవడం, పునఃప్రారంభ సమయంలో ఫోటోగ్రాఫ్ ను చూడవచ్చు.
 కాబట్టి, మధ్య సామాన్యత ఉంది; ఈ విభిన్న రకాల ఫోన్ల మధ్య substantial సామాన్యం ఉంది, కానీ ఒక రకమైన ఫోన్ నుండి మరొకదానికి వెళ్లినప్పుడు, మొబైల్కు ల్యాండ్లైన్ మేము దొరుకుతుందాం మరికొన్ని అదనపు ఫంక్షనాలిటీ లు దొరుకుతున్నాయి.
 మేము మొబైల్ నుండి స్మార్ట్ ఫోన్కు వెళ్తాము ఇంకా కొన్ని మరింత కార్యాచరణలు మరియు ఆ విధంగా ఫోన్లు చాలా nice చిన్న specialization generalization హైరార్కీ కలిగి ఉంటుంది.
 అందువల్ల, మీరు కేవలం సంజ్ఞల కోసం, వివిధ రకాల గాడ్జెట్లు మరియు సాధ్యమయ్యే వాటి యొక్క హైరార్కీ లు గురించి మీకు అవగాహన కలిగించడానికి.
 తరువాత మాడ్యూల్ వద్ద మేము ఫోన్లు చేపట్టాలనుకుంటున్నాము మరియు వాస్తవానికి ఇన్హెరిటెన్స్ స్ట్రక్చర్ పూర్తి డిజైన్ చేయాలనుకుంటున్నాను, కానీ ఇప్పుడు C ++ ఇన్హెరిటెన్స్ భావించే కాంక్రీట్ సెమాంటిక్స్కు వెళ్లనివ్వండి.
 కాబట్టి, సాధారణంగా మేము రెండు క్లాస్ ల గురించి మాట్లాడతాము; బేస్ క్లాస్ మరియు డిరైవవ్డ్ క్లాస్.
 కాబట్టి, ISA మోడల్; డిరైవవ్డ్ ISA బేస్.
 అందువల్ల, డిరైవవ్డ్ క్లాస్ యొక్క నేమ్ డిరైవవ్డ్, బేస్ క్లాస్ యొక్క నేమ్ బేస్ మరియు ఖచ్చితంగా ఇది ఇదే C ++ లో ప్రాతినిధ్యం వహించబడిందని మేము ఇప్పటికే చూశాము.
 కాబట్టి, కొత్త పరిచయం ఇది ఒక కీవర్డ్ ని పబ్లిక్ కీవర్డ్ గా ఉంది ఇది ఇప్పటికే ఉన్న ప్రాముఖ్యత కోసం ఉపయోగించినందున, కానీ ఇక్కడ మేము కొన్ని ప్రత్యేక ప్రయోజనాల కోసం మళ్లీ ఉపయోగిస్తున్నాము, మరియు ఈ ప్రత్యేక కీవర్డ్ యొక్క ప్రాముఖ్యత ఏమిటి అని చూద్దాం మరియు మేము వారి ప్రత్యామ్నాయాల గురించి మాట్లాడతాము, కానీ ఇప్పుడే దీనిని ఒక ప్రిస్క్రిప్షన్గా తీసుకుంటాను, నేను చెప్పేది అది డిరైవవ్డ్ ISA బేస్ అని చెప్పుకునే మార్గం, మరియు ఈ కీవర్డ్ తర్వాత మీకు క్లాస్ నేమ్ మీరు పేర్కొన్న generalized లేదా బేస్ క్లాస్ నేమ్.
 ఇప్పుడు, ఖచ్చితంగా ఒక ప్రశ్న యొక్క మొత్తం చాలా వరకు చేస్తున్నట్లు మేము మాట్లాడుతున్నాము, ఎందుకంటే ఆ బేస్ వేర్వేరు డేటా మెంబర్లను కలిగి ఉంటుందని మేము ఆశిస్తాం.
 డిరైవవ్డ్ వివిధ డేటా మెంబర్లను కూడా ఉంటారు, బేస్ వివిధ మెతడ్స్ ను కలిగి ఉంటుంది, డిరైవవ్డ్ కూడా వివిధ మెతడ్స్ ను కలిగి ఉంటుంది.
 బేస్ కన్స్ట్రక్ట్ చేయాల్సిన అవసరం ఉంది, డిరైవవ్డ్ కూడా మరియు కన్స్ట్రక్ట్ చేయాల్సిన అవసరం ఉంది.
 కాబట్టి, మనము చాలా జాగ్రత్తగా వివరించాలి మరియు అర్ధం చేసుకోవాలి; ఈ బేస్ ఎలా సంబంధాన్ని కలిగి ఉంటుందో సెమాంటిక్స్ అంటే ఏమిటి? కాబట్టి, నేను మొదట్లో సరిదిద్దటానికి ఇష్టపడుతున్నాను, అప్పుడు మేము వీటిలో ప్రతి ఒక్కదాన్ని తీసుకొని మరింత వివరణాత్మక చర్చ చేయాలని ప్రయత్నిస్తాము.
 నేను మొదట C ++ లో ఇన్హెరిటెన్స్ యొక్క సెమాంటిక్స్ గురించి మాట్లాడేటప్పుడు, మీరు వీటి గురించి చాలా జాగ్రత్తగా ఉండవలసిన మొదటి స్థాయి అంశాలు.
 మొదటి విషయం, నను క్షమించండి; మొదటి విషయం డేటా మెంబర్లు.
 కాబట్టి, బేస్ క్లాస్ యొక్క అన్ని డేటా మెంబర్ నుండి డిరైవవ్డ్ క్లాస్ పొందినట్లు మేము చెబుతాము.
 కాబట్టి, మీరు డిరైవవ్డ్ క్లాస్ లను ఏ డేటా మెంబర్ని కలిగి లేనప్పటికీ, అది ఇప్పటికీ బేస్ క్లాస్ కి చెందిన అన్ని డేటా మెంబర్లతో కూడిన డేటా మెంబర్లను కలిగి ఉంటుంది, కానీ అది మరింత డేటా మెంబర్లను మరింతగా add చేయగలదు.
 నేను వీటిలో ప్రతిదానికి ఉదాహరణగా వస్తాను, కానీ నేను ప్రాథమిక ప్రిన్సిపిల్ ను చెప్పడానికి ప్రయత్నిస్తున్నాను.
 ఇన్హెరిటెన్స్ యొక్క ప్రాధమిక ప్రిన్సిపిల్ ఇది నేను మరియు నేను సాధారణ భావన సంతృప్తి చెంది ప్రతిదీ సంతృప్తి అవసరం మరింత ప్రత్యేక భావన అందించడానికి ప్రత్యేకంగా ప్రయత్నిస్తున్న కొన్ని భావనలు ఉంది.
 కాబట్టి, బేస్, డిరైవ్డ్ సంతృప్తినిచ్చే ప్రతిదీ సంతృప్తి పరచాలి.
 కాబట్టి, ఇది మొత్తం డేటా మెంబర్లను కలిగి ఉండాలి, కానీ అది మొత్తం భావనను మరింత మెరుగుపరచడానికి దాని స్వంతని జోడించవచ్చు.
 మళ్ళీ మెంబర్ ఫంక్షన్ ల పరంగా, మనము చూసే చాలా ముఖ్యమైన ఆలోచనలు ఉన్నాయని తెలుసుకుంటాం.
 మొదటి భాగము, ఒక డిరైవ్డ్ క్లాస్ బేస్ క్లాస్ కి చెందిన అన్ని మెంబర్ ఫంక్షన్ లను ఇన్హెరిట్ చేసుకుంటుంది, కానీ ఆ తరువాత ఒక పెద్ద వ్యత్యాసం ఉంది; మీరు మెంబర్ ఫంక్షన్ ఇన్హెరిటెన్స్ గా వంటి మీరు తిరిగి సంస్కరణ మార్చకుండా అది తిరిగి నిర్వచించటానికి తిరిగి అమలు ఎంపిక ఉంది.
 మీరు అదే విధమైన అల్గోరిథంతో మళ్ళీ అదే ఫంక్షన్ నిర్వచించాలనుకుంటున్నారు మరియు మీరు ఇలా చేస్తే అప్పుడు మీరు బేస్ వర్గంలో మెంబర్ల పనిని భర్తీ చేస్తున్నారని చెప్తారు; ఈ భావన చాలా ఓవర్లోడింగ్ భావనతో చాలా దగ్గరగా ఉన్నందున చాలా జాగ్రత్త వహించండి, ఓవర్లోడింగ్ తో మీకు గందరగోళంగా మొదలవుతుంది మరియు మీకు చెడ్డ విషయాలు ఏమిటంటే మీరు నిజంగా ఇన్హెరిటెన్స్ సందర్భంలో ఓవర్లోడింగ్ చేస్తారనే మంచి అవకాశం ఉంది.
 మీరు ఒకే సిగ్నేచర్ ఒక ఫంక్షన్ని తిరిగి ఓవరైడింగ్ చేస్తే, అది భర్తీ అవుతుంది.
 మీరు విభిన్న సిగ్నేచర్ తో ఒక ఫంక్షన్ని తిరిగి నిర్వచించినప్పుడు ఓవర్లోడింగ్ అంటారు.
 సో, ఈ మేము ఇన్హెరిటెన్స్ కింద మెంబర్ ఫంక్షన్ లు ప్రవర్తన పరంగా అర్థం అవసరం వివిధ సెమాంటిక్స్ ఉన్నాయి.
 యాక్సెస్ స్పెసిఫికేషన్ పరంగా మనము చూడవలసిన తదుపరి అంశం.
 ఇప్పుడు, యాక్సెస్ స్పెసిఫికేషన్ పరంగా సహజంగా మనకు ప్రైవేటు యాక్సెస్ ఉందని మరియు పబ్లిక్ యాక్సెస్ ఉందని మాకు తెలుసు.
 ప్రైవేటు యాక్సెస్ క్లాస్ మెంబర్ ల కోసం ఉంది, ప్రజా యాక్సెస్ ప్రతిఒక్కరికీ.
 కాబట్టి, బేస్ క్లాస్ యొక్క డిరైవ్డ్ క్లాస్ ఖచ్చితంగా ఆ క్లాస్ లో భాగం కాదు.
 అందువల్ల, ఒక డిరైవ్డ్ క్లాస్ బేస్ క్లాస్ లను ప్రైవేట్ మెంబర్ల ను యాక్సెస్ చేయలేరు.
 ఇది పబ్లిక్ మెంబర్ లను మాత్రమే యాక్సెస్ చేయగలదు, కానీ అది చాలా కష్టాలకు దారి తీస్తుందని మేము చూస్తాము ఎందుకంటే ప్రత్యేకమైన semantics ప్రత్యేకంగా ఉంచడానికి మేము ప్రయత్నిస్తున్నట్లుగా చెప్పాలంటే ప్రత్యేకంగా సంకేతపదంగా సూచించడంతో, బేస్ క్లాస్ అంతర్గతాలకు ఎటువంటి ప్రాప్తి లేదు.
 అందువల్ల, ఒక కొత్త టైప్ యాక్సెస్ స్పెసిఫైయర్తో, ప్రొటెక్టడ్ యాక్సెస్ స్పెసిఫైయర్ ఇన్హెరిటెన్స్ మంచి అర్థాలకు మద్దతిస్తుంది.
 కాబట్టి, ఇన్హెరిటెన్స్ గా మద్దతు ఇచ్చే ఈ మూడవ రకమైన దృశ్యమానత లేదా ప్రాప్యత వివరణ ఏమిటో తెలుసుకోవడానికి మరియు అర్థం చేసుకోవడానికి మాకు ఉంటుంది.
 అంతిమంగా, సహజంగా ఆబ్జెక్ట్ డిస్ట్రక్ట్ చేయబడాలి మరియు బేస్ మరియు డిరైవ్డ్ క్లాస్ మధ్య ఇన్హెరిటెన్స్ గా ఉన్నప్పుడు, ఒక డిరైవ్డ్ క్లాస్ ఉదాహరణగా పిలువబడే ఒక డిరైవ్డ్ క్లాస్ కన్స్ట్రక్టర్ కావాలి, కాని డిరైవ్డ్ క్లాస్ కన్స్ట్రక్టర్ ఒక బేస్ని కలిగి ఉంటుంది క్లాస్ ఆబ్జెక్ట్ కన్స్ట్రక్టర్ ని పిలుస్తూ క్లాస్ ఆబ్జెక్ట్.
 కాబట్టి, బేస్ క్లాస్ అవగాహన మరియు డిరైవ్డ్ క్లాస్ ఆబ్జెక్ట్ ఎలా తమకు మరియు వారితో ఎలా సంకర్షణ చెందుతాయో తెలుసుకోవడానికి అవసరమైన ప్రాథమిక అవగాహన.
 అదేవిధంగా, ఒక డిరైవ్డ్ క్లాస్ ఆబ్జెక్ట్ ను డిస్ట్రక్ట్ చేయవలసి వచ్చినప్పుడు, బేస్ క్లాస్ యొక్క డిస్ట్రక్టర్ ప్రయోగించవలసి ఉంటుంది, తద్వారా మీరు డిరైవ్డ్ క్లాస్ ఆబ్జెక్ట్ యొక్క బేస్ క్లాస్ భాగాలను డెస్ట్రాయ్ చేయవచ్చు.
 కాబట్టి, ఇది ఇన్హెరిటెన్స్ ను ఎలా ఉపయోగించాలో అర్ధం చేసుకోవడానికి మరియు C ++ ల్యాంగ్వేజ్ చాలా సమర్థవంతమైన రీతిలో వేర్వేరు వాస్తవ ప్రపంచ scenario hierarchy ను ఎలా నిర్దేశించాలో అర్థం చేసుకోవడానికి అవసరమైన అన్ని ప్రధాన అర్థాల సిమాంటిక్స్(semantics) ఇది.
 ఈ విధంగా సంగ్రహించేందుకు, మనకు OOAD hierarchy యొక్క శ్రేణిని ISA సంబంధం మరియు క్లాస్ హైరార్కీ భావన ఆబ్జెక్ట్ ఓరియంటెడ్ అనాలిసిస్ అండ్ డిజైన్ యొక్క పునర్వ్యవస్థీకరణలో ఉంది మరియు C ++ లో ఇన్హెరిటెన్స్ యొక్క ప్రాథమిక భావనను పరిచయం చేసాము. 
 మరియు అర్థం చేసుకోవడానికి అవసరమైన అర్థాల యొక్క విభిన్న అంశాలను ఏవి గమనించాలో, మేము నిజంగా ప్రభావవంతమైన పద్ధతిలో ఇన్హెరిటెన్స్ ని ఉపయోగించుకునే విధంగా మాస్టర్స్గా ఉండాలి.