Virtual Function Table (Lecture 46)-wwgGygjeBbo 55.9 KB
Newer Older
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 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166
 C + + లో ప్రోగ్రామింగ్ మాడ్యూల్ 31 కు స్వాగతం.
 చివరి రెండు మాడ్యూల్స్లో మేము డైనమిక్ బైండింగ్ (dynamic binding), పాలిమార్ఫిజం ;(polymorphism) గురించి చర్చించాము, పాలిమార్ఫిక్ రకం (polymorphic type) మరియు ముఖ్యంగా మేము నేర్చుకున్న ప్రధాన కొత్త ఫీచర్స్(features) పాలిమార్ఫిక్ డిస్పాచ్ (polymorphic dispatch) గురించి చర్చించాము.
 ఇది ఒక యంత్రాంగం, దీని ద్వారా నేను పాలిమార్ఫిక్ సోపానక్రమానికి సంబంధించిన తరగతి యొక్క సభ్యుడు (సభ్యుడు) ఫంక్షన్ (ఫంక్షన్) అని పిలుస్తాను.
 నేను పాయింటర్ (పాయింటర్) ద్వారా లేదా బేస్ క్లాస్ రకానికి సూచన ద్వారా పిలిచినప్పుడు, ఉపయోగించిన వాస్తవ ఫంక్షన్ (ఫంక్షన్) పాయింటర్ (లేదా పాయింటర్) రకంపై ఆధారపడి ఉండదు, కానీ ఇది వాస్తవానికి ప్రస్తుత వస్తువుపై ఆధారపడి ఉంటుంది లేదా సూచించబడాలి .
 ఇది రన్‌టైమ్‌పై ఆధారపడి ఉంటుంది మరియు ఈ యంత్రాంగాన్ని పాలిమార్ఫిజం అంటారు లేదా ఈ బైండింగ్ పద్ధతిని మనం చూసినట్లుగా డైనమిక్ బైండింగ్ అంటారు, మరియు ఈ మొత్తం విషయాన్ని సి ++ లో పాలిమార్ఫిక్ డిస్పాచ్ అంటారు.
 మేము పాలిమార్ఫిక్ డిస్పాచ్ మెకానిజమ్‌ను పరిశీలించాము మరియు సిబ్బంది జీతం ప్రాసెసింగ్ కోసం పరిష్కారాలను సిద్ధం చేయడంలో మేము దీనిని విస్తృతంగా ఉపయోగించాము.
 మాడ్యూల్‌లో, ఈ పాలిమార్ఫిక్ ట్రాన్స్మిషన్ పరంగా కొంత అవగాహన కలిగి ఉండాలనుకునే వర్చువల్ టేబుల్ గురించి ఈ రోజు మనం చర్చిస్తాము; వాస్తవానికి కంపైలర్ చేత అమలు చేయబడింది.
 ఎందుకంటే మీరు కోడ్ ప్రాసెసింగ్ సమయంలో కంపైలర్ స్థిరమైన సమయంలో పనిచేస్తుందని గుర్తుంచుకోవాలి; అమలు జరగని సమయంలో మూలం ప్రాసెస్ చేయబడుతోంది.
 అందువల్ల, కంపైలర్‌కు రన్‌టైమ్‌లో ఇచ్చిన సూచికగా తెలుసుకోవటానికి మార్గం లేదు, ఇది వాస్తవానికి సూచించే వస్తువు రకం, కానీ అమలు సమయంలో డైనమిక్ అయిన కోడ్‌ను ఇంకా ఉత్పత్తి చేయాలి. రకం ప్రకారం పని చేస్తుంది.
 పాలీమెరిక్ ట్రాన్స్మిషన్కు ముఖ్యమైన వర్చువల్ ఫంక్షన్ టేబుల్ వాడకం ద్వారా ఇది జరుగుతుంది.
 ఇందుకోసం మేము చర్చిస్తున్న జీతం ప్రాసెసింగ్ అప్లికేషన్ యొక్క శీఘ్ర సవరణను తీసుకుంటాము.
 మేము సి లో క్రొత్త పరిష్కారాన్ని ప్రవేశపెడతాము మరియు పంపించటానికి వర్చువల్ ఫంక్షన్ పట్టికను అర్థం చేసుకోవడంలో మనకు ఎలా అవగాహన ఉంటుందో చూపిస్తాము.
 కాబట్టి ఇది సమస్య, జీతం అవసరమయ్యే వివిధ రకాల ఉద్యోగులు ఉన్నారని మరియు వారి జీతం ప్రాసెసింగ్ అల్గోరిథంలు భిన్నంగా ఉన్నాయని మేము అనుకున్నాము.
 మరియు డిజైన్ మొత్తం సహేతుకంగా ఉంటుంది, డిజైన్ సహేతుకంగా విస్తరించాల్సిన అవసరం ఉంది.
 మేము దీన్ని చేయాలనుకున్నప్పుడు, సోపానక్రమానికి కొత్త తరగతులను జోడించడం సాధ్యమవుతుంది.
 సి లో, మేము దీనిని పరిగణించాము మరియు మీరు ఎప్పుడైనా మునుపటి మాడ్యూళ్ళను సూచించవచ్చు, వాటిని అలాగే మాడ్యూల్ నంబర్‌ను చూడండి మరియు డిజైన్ పరిగణనలు ఏమిటి.
 ఇప్పుడు, మేము ఒక ఫంక్షన్ స్విచ్ యొక్క యంత్రాంగాన్ని ఉపయోగించిన పరిష్కారం గురించి చర్చించినప్పుడు, మేము ఆ రకాన్ని స్పష్టంగా నిర్వహిస్తాము మరియు ప్రతి ఉద్యోగి రికార్డును ప్రాసెస్ చేస్తున్నప్పుడు దీన్ని తనిఖీ చేస్తాము. సరైన పే ప్రాసెసింగ్ పని.
 ఇప్పుడు మనం ఫంక్షన్ పాయింటర్లను ఉపయోగించి కొద్దిగా భిన్నమైన అభిరుచులతో ఒకే పరిష్కారాన్ని చూడటానికి ప్రయత్నిస్తాము.
 ప్రధాన వ్యత్యాసం, నేను హైలైట్ చేస్తాను; రకం యొక్క స్పష్టమైన నిర్వహణ ఇప్పటికీ ఉంది.
 నేను మూడు రకాలు ఉన్నాయని uming హిస్తున్నాను; ఇంజనీర్, మేనేజర్ మరియు డైరెక్టర్.
 పే ప్రాసెసింగ్ దినచర్యను తనిఖీ చేయడానికి మీరు మునుపటి వీడియో లేదా ప్రెజెంటేషన్‌ను తెరవగలరని మీరు గుర్తుచేసుకునే ముందు, ఇంజనీర్‌కు పే ప్రాసెసింగ్ ఇంజనీర్‌కు సూచిక తీసుకుంటుందని చెప్పబడింది.
 మేనేజర్ (మేనేజర్) కోసం పే ప్రాసెసింగ్ మేనేజర్ (మేనేజర్) కోసం ఒక సూచికను తీసుకుంటుంది మరియు జీతం ప్రాసెసింగ్ డైరెక్టర్ (డైరెక్టర్) కోసం డైరెక్టర్.
 ఇప్పుడు నేను దానిని కొద్దిగా మార్చాను, ఇప్పుడు ప్రతి ఒక్కరూ శూన్య పాయింటర్ తీసుకుంటారు, ఎందుకంటే ఈ ఫంక్షన్లన్నీ ఒకే సంతకాన్ని కలిగి ఉండాలని నేను కోరుకుంటున్నాను.
 ఒకసారి మేము దీనిని సహజంగా శూన్య నక్షత్రంగా పొందిన తరువాత, శూన్య నక్షత్రం అది ఏ రకమైన వస్తువు అని నాకు చెప్పదు, కాని ఇంజనీర్ కోసం పే ప్రాసెసింగ్ అని పిలువబడిందని నాకు తెలుసు కాబట్టి, శూన్యమైన స్టార్ సూచిక వాస్తవానికి ఇంజనీర్ రికార్డును సూచిస్తుందని నాకు తెలుసు , కాబట్టి నేను దానిని ఇంజనీర్‌కు ఇచ్చాను.
 లేదా అది మేనేజర్ (మేనేజర్) ఫంక్షన్ (ఫంక్షన్) అయితే, నేను దానిని మేనేజర్ (మేనేజర్) లేదా ఇన్స్ట్రక్షనల్ ఫంక్షన్ (ఫంక్షన్) అని పిలుస్తాను, దానిని నేను డైరెక్టర్‌కు ఇచ్చాను మరియు తరువాత ప్రాసెసింగ్ చేయాలి.
 స్పష్టంగా భిన్నమైన పారామితి రకాలు లేకుండా నేను ఇప్పటికీ ఇక్కడ నిర్వహించగలను.
 కానీ ఈ ప్రక్రియలో ప్రయోజనం ఏమిటి; ఈ రచనలన్నీ ఇప్పుడు ఒకే సంతకాన్ని కలిగి ఉన్నాయి.
 వారు ఒకే సంతకాన్ని కలిగి ఉన్నందున, నేను వాటిని పిటిఆర్ అని చెప్పే సారూప్య ఫంక్షన్ (పాయింటర్) రకం సందర్భంలో వాటిని కలపడానికి ప్రయత్నించవచ్చు, ఇది ఒక ఫంక్షన్ పాయింటర్, ఇది శూన్యమైనది (శూన్యమైనది) తారాను తీసుకుంటుంది మరియు ఏమీ వ్రాయబడదు.
 ఇది ఫంక్షన్ పాయింటర్ అని గమనించండి, కాబట్టి ఇది ప్రాథమికంగా ఫంక్షన్ పాయింటర్ రకం.
 ఇది ఒక పని కాదు.
 మేము ఫంక్షన్ నిర్వచించాము.
 కాబట్టి, మేనేజర్ కోసం లేదా డైరెక్టర్ కోసం ఇంజనీర్ కోసం ఈ ఫంక్షన్లలో ఏదైనా వాస్తవానికి ఈ ఫంక్షన్ (పాయింటర్) రకంతో సరిపోతుంది.
 మిగతా డిజైన్ ఒకేలా ఉంటుంది, విభిన్న నిర్మాణాలు వివిధ రకాల వస్తువులను నిర్వచించటానికి మరియు అదే సమయంలో అప్లికేషన్‌లో మొత్తం విషయాన్ని వాస్తవంగా ఎలా మిళితం చేస్తామో చూద్దాం.
 అప్లికేషన్ పరంగా, మనం ఏమి చేస్తున్నామో, ఇప్పుడు మనం ఒక రికార్డును నిర్వహిస్తున్నాము, ఇది ప్రాథమికంగా నేను ఆ రకాన్ని ఎక్కడ ఉంచాను అనే సందేహం ఉంది, ఇది ఎర్ లేదా ఎంజిఆర్ మరియు ఇలాంటివి జరుగుతాయి.
 రెండవది శూన్యతకు పాయింటర్, ఇది ఒక రకమైన పాయింటర్.
 ఇప్పుడు మనం ఏమి చేయాలి? మేము ఫంక్షన్ పాయింటర్ యొక్క శ్రేణిని జనసాంద్రత చేస్తాము.
 కాబట్టి ఇది ఒక రకమైన ఫంక్షన్ పాయింటర్.
 నేను ఇప్పటికే ఫంక్షన్ పాయింటర్ రకాన్ని నిర్వచించాను.
 కాబట్టి ఈ ఫంక్షన్ 0, 1 మరియు 2 పాయింట్ల శ్రేణి, మరియు వీటిలో ప్రతిదానిలో మనం మూడు వేర్వేరు నిర్మాణ రకములకు వ్రాసిన మూడు వేర్వేరు ఫంక్షన్లను కేటాయిస్తాము.
 ఇవి వాస్తవానికి శ్రేణిలో నిర్ణయించిన మూడు వేర్వేరు ఫంక్షన్ పాయింటర్లు.
 అప్పుడు మీరు వస్తువుల సేకరణను జనసాంద్రత చేస్తారు, కాబట్టి వస్తువుల సేకరణ వస్తువు రకం మరియు వస్తువు ఉదాహరణ.
 ఈ వస్తువు ఉదాహరణకు ఒక సూచిక కాబట్టి అది ఇప్పుడు శూన్య నక్షత్రం స్థానంలో ఉంటుంది.
 నేను ఈ శ్రేణిని చూస్తే అది రెట్టింపు, కాబట్టి నాకు ఎర్ అప్పుడు ఎర్ ఆబ్జెక్ట్ ఉంది, నాకు ఎంజిఆర్ ఉంది, నాకు మేనేజర్ ఆబ్జెక్ట్ ఉంది.
 కాబట్టి మేము దానిని ఆ విధంగా కలిగి ఉంటాము, వాటిలో ఆరు భిన్నంగా ఉంటాయి.
 ఈ అంశం నా మొత్తం సేకరణ.
 ఇప్పుడు, నేను లూప్ పైన వెళ్తాను అని ప్రాసెస్ చేయాలనుకున్నప్పుడు మరియు నేను ఈ ఫంక్షన్ (పాయింటర్) శ్రేణిని ఉపయోగించడం మరియు i-th సిబ్బంది రకాన్ని ఉపయోగించడం ముఖ్యం.
 రకం ఎర్ అయినప్పుడు నేను 0 అయితే చెప్పండి.
 నేను ఈ ఫంక్షన్‌ను ఈ శ్రేణి అయిన పాయింటర్ అర్రే నుండి ఎంచుకుంటాను, నేను దానిని ఎర్ అని ఇండెక్స్ చేస్తాను అంటే 0 అని అర్ధం, ఆపై మనం ఆ ఫంక్షన్‌ను పిలుస్తాము.
 కాబట్టి, ఈ psArray నేను వేరే రంగును ఉపయోగిస్తే, అది ప్రత్యేకంగా ఫంక్షన్ పాయింటర్ (పాయింటర్) అని చెప్పండి, ఎందుకంటే psArray ఈ శ్రేణి.
 నేను దానిని డాట్ టైప్ స్టఫ్ తో ఇండెక్స్ చేసాను, ఈ సందర్భంలో అది ఎర్, పూర్వం ఇంజనీర్.
 కాబట్టి నాకు లభించేది ఫంక్షన్ పాయింటర్, ఇది ఫంక్షన్, ఇది ఫంక్షన్ రకం, ఇది శూన్యమైన నక్షత్రాన్ని తీసుకుంటుంది మరియు ఫంక్షన్ అంటారు.
 మరియు అది ప్రయాణిస్తున్నది ఇక్కడ రెండవ పరామితి సిబ్బంది [i] .p; వస్తువు యొక్క సూచిక.
 నేను ఎర్తో ఇక్కడకు పిలిచినప్పుడు, నాకు ఈ ఫంక్షన్ వచ్చింది, ఇది ప్రాసెస్ పే ఇంజనీర్, దీనిని ఇంజనీర్ రికార్డ్ ద్వారా పిలుస్తారు, అంటే దానిని ఆ ఇంజనీర్‌తో పిలుస్తారు. రోహిత్‌తో చేయబడుతుంది.
 నేను 1 అయినప్పుడు, నేను Mgr అని టైప్ చేసిన రెండవ రికార్డ్‌ను పొందుతాను మరియు అది 1, కాబట్టి నేను రెండవ ఫంక్షన్ పాయింటర్‌ను పొందుతాను మరియు నేను దానిని పాయింటర్‌తో చేస్తాను సంబంధిత మేనేజర్ (మేనేజర్) రికార్డ్ అయిన సంబంధిత ఉద్యోగికి పంపుతాను.
 ఈ విధంగా ఈ ఫంక్షన్లన్నీ ఒకదాని తరువాత ఒకటి తగిన ఉద్యోగి రికార్డుతో తగిన రకంతో పిలువబడతాయి మరియు ఒకసారి మేము రికార్డ్ లోపల ఉన్నప్పుడు ఇంజనీర్ ఫంక్షన్‌ను ఆహ్వానిస్తే ఫంక్షన్ పూర్తయిందని మరియు నాకు ఒక పాయింటర్ వచ్చింది ఇంజనీర్‌ను ఇక్కడ రికార్డ్ చేయండి, అందువల్ల నేను ప్రసారం చేస్తాను.
 ఇది చేసే ప్రాథమిక శైలి ఇది.
 మేము చేసిన మార్పు; మేము ఈ మొత్తం విషయాన్ని ఫంక్షన్ పాయింటర్ల శ్రేణిలో సృష్టించాము మరియు మేము వాటిని సాధారణ కోడ్ ద్వారా ప్రారంభిస్తున్నాము.
 మరియు మాకు ఎటువంటి స్విచ్‌లు అవసరం లేదు; ఈ ఫంక్షన్ పాయింటర్ శ్రేణిలో క్రమం చేయడం ద్వారా మేము చేస్తున్న షరతులతో కూడిన స్విచ్ అన్నింటినీ జాగ్రత్తగా చూసుకుంటుంది.
 ఇది సి లో మరొక పరిష్కారం కావచ్చు, ఇది సి లోని స్మార్ట్ సొల్యూషన్ చాలా ఉపయోగకరంగా ఉంటుంది.
 మేము దానిని త్వరగా పాలిమరిక్ సి ++ ద్రావణంతో పోల్చినట్లయితే, ఇది పరిష్కారానికి అసలు విధానం.
 మీరు దీనిని పరిశీలిస్తే, మాకు డిస్ట్రాయర్లు, కన్స్ట్రక్టర్లు, విభిన్న ఓవర్రైడ్ ప్రాసెస్ పే ఫంక్షన్లు మరియు అలాంటివన్నీ ఉన్నాయని మీరు చూస్తారు.
 దీనితో, మేము చూస్తే, మా కోడ్ ఈ కాల్‌తో ఉచ్చుల కోసం మాత్రమే.
 ప్రతి ఇంజనీర్ రకానికి ఇది సూచికగా ఉన్న చోట మరియు పాలిమర్ ట్రాన్స్మిషన్ ఆధారంగా ఇది తగిన ప్రాసెస్సాలరీ ఫంక్షన్ అని పిలుస్తుంది.
 మేము దానిని పక్కపక్కనే పోల్చి చూస్తే అది డిజైన్ లక్షణాలను పోల్చి చూస్తుంది.
 కానీ మేము దానిని పక్కపక్కనే పరిష్కారంతో పోల్చినట్లయితే, అది సి పరిష్కారం అని మీరు చూస్తారు, ఇది ఈ సి ++ తరగతికి చెందినది.
 కాబట్టి, మీరు దానిలో ఇంజనీర్‌ను కలిగి ఉన్నారు, మీకు ఇక్కడ కన్స్ట్రక్టర్ ఉన్నారు, మీకు ఈ ప్రత్యేక ప్రాసెసింగ్ ఫంక్షన్ (ఫంక్షన్) ఉంది, మీకు ఓవర్‌లోడ్ సభ్యుడు (సభ్యుడు) ఫంక్షన్ (ఫంక్షన్) ప్రకృతిలో ఉంది పాలిమార్ఫిక్.
 అదేవిధంగా, నాకు తదుపరి రకం దర్శకుడు ఉన్నారు మరియు ఇవి మనకు ఉన్న మూడు తరగతులు.
 ఇప్పుడు, మేము ప్రాసెసింగ్ భాగాన్ని పరిశీలిస్తే, ఈ రెండు ప్రాసెసింగ్ ఎలా ఉందో చూద్దాం.
 కాబట్టి ఇక్కడ నేను ఆ వస్తువుకు పాయింటర్‌ను తీసుకుంటాను మరియు డైనమిక్ రకం ఆధారంగా నేను దాని సంబంధిత రకం ఆధారంగా ఏదైనా ఫంక్షన్‌కు పంపుతాను.
 ఇక్కడ మేము అదే psArray ను ఉపయోగించి పని చేస్తాము, ఇది ఉపయోగించగల ఫంక్షన్ పాయింటర్ల శ్రేణి.
 ఒకే తేడా ఏమిటంటే, నేను ఉపయోగిస్తున్న రకం మరియు నిర్దిష్ట వస్తువు మధ్య రకం మరియు సంబంధాన్ని నేను స్పష్టంగా నిర్వహించాలి.
 కాబట్టి నేను ఎంచుకున్న ఫంక్షన్ రకాన్ని బట్టి, దాని యొక్క రెండవ భాగం ప్రత్యేకంగా ఆబ్జెక్ట్ పాయింటర్ ఏమిటో చెబుతుంది మరియు మేము ఆబ్జెక్ట్ పాయింటర్‌ను పాస్ చేస్తాము.
 కాబట్టి, ఇక్కడ నేను దీన్ని చేయనవసరం లేదు ఎందుకంటే మనం ప్రాథమికంగా సరైన రకాన్ని ఎన్నుకోవలసి ఉంటుందని మనందరికీ తెలుసు కాబట్టి, ఆబ్జెక్ట్ పాయింటర్ ఈ పాయింటర్‌గా ఉంటుంది మరియు ఇది పని చేస్తుంది.
 నేను ఈ ఉదాహరణను మీకు చూపించడానికి లేదా సి లో ఫంక్షన్ పాయింటర్ ఉపయోగించి మీకు చూపించడానికి కారణం, ఇది వాస్తవానికి సి ++ కంపైలర్ యొక్క వర్చువల్ ఫంక్షన్ (ఫంక్షన్) లేదా పాలిమార్ఫిక్ ఫంక్షన్‌ను జాగ్రత్తగా చూసుకుంటుంది.
 కాబట్టి దీన్ని నిజమైన వివరాలకు తీసుకురావడానికి, నాకు బేస్ క్లాస్ B ఉందని అనుకుందాం, కాబట్టి ఈ బేస్ క్లాస్ కోసం నాకు రెండు ఫంక్షన్లు ఉన్నాయి; F ఫంక్షన్ ఉంది మరియు ఈ ఫంక్షన్ g.
 ఏది; A అనేది పాలిమెరిక్ రకం, G అనేది పాలిమార్ఫిక్ రకం, F ఒక పాలిమార్ఫిక్ రకం, ఇది వర్చువల్ కాని ఫంక్షన్.
 మరియు ఈ బేస్ క్లాస్ ఆధారంగా, నా వద్ద పాలిమార్ఫిక్ కాని (పాలిమార్ఫిక్) ఫంక్షన్లతో పాటు పాలిమార్ఫిక్ ఫంక్షన్లను వ్రాసే ఉత్పన్న తరగతి ఉంది.
 ఇప్పుడు, ఈ సందర్భంలో మీరు ఏమి చేస్తారు; పాలిమార్ఫిక్ కాని ఫంక్షన్ కోసం, ప్రకృతిలో పాలిమార్ఫిక్ లేని ఫంక్షన్ గురించి మాత్రమే మాట్లాడితే, ఇన్వోక్ ఎలా ఉంటుంది? నేను వస్తువుతో నేరుగా యాక్సెస్ చేస్తున్న B. f () ను నమూనా చేస్తే అనుకుందాం.
 కాబట్టి, కంపైలర్ ఈ విషయాన్ని ఎలా చెబుతారు? కంపైలర్ ఒక క్లాస్ బి రకం వస్తువు అని కంపైలర్కు తెలుస్తుంది, ఇది కంపైలర్కు తెలిసిన ఫంక్షన్ (ఫంక్షన్) ఎఫ్.
 కాబట్టి, ఈ ఫంక్షన్ బి కోలన్-కొలోన్ ఎఫ్ అని పిలుస్తారు మరియు ఇది ఏమి అవసరం? దీనికి b యొక్క చిరునామా అయిన ఈ పాయింటర్ అవసరం, కాబట్టి ఇది b యొక్క చిరునామాలోకి ప్రవేశిస్తుంది మరియు ఇది పరామితిని చొప్పిస్తుంది.
 కాబట్టి, ఇది ఇక్కడ b యొక్క చిరునామాను మరియు పరామితిని ఉంచుతుంది మరియు దీనిని పిలుస్తారు.
 ఇది స్థిరమైన బంధం; ఇది సాధారణ స్టాటిక్ బాండ్.
 నేను పాయింటర్ ఉపయోగిస్తుంటే నేను పాయింటర్‌తో అదే పని చేయాలి.
 కాబట్టి, నేను దీనిని పిలుస్తుంటే, రకం B యొక్క పాయింటర్ రకం ద్వారా, ఇది మనం ఇంతకు ముందు చూసిన B తరగతిలో మరియు B తరగతిలో దాని పనితీరును చూడాలని తెలుసు. F ఇది వర్చువల్ కానిది, అప్పుడు అది నేరుగా ఆ ఫంక్షన్‌ను పిలవాలి.
 కాబట్టి, ఇది గణాంకపరంగా b :: f () పాయింటర్ విలువ మరియు పరామితిని దాటిపోతుంది.
 ఇవి ఖచ్చితంగా చక్కగా ఉండే స్టాటిక్ పద్ధతులు.
 ఇప్పుడు, నేను మూడవ కాల్‌ను కూడా పరిశీలిస్తాము, అక్కడ నేను ఆబ్జెక్ట్‌ను ఉపయోగిస్తున్నాను మరియు వర్చువల్-కాని ఫంక్షన్ g అని పిలుస్తాను.
 రీ కంపైలర్ అదే పని చేస్తుంది.
 మనం దానిని ఒక వస్తువుతో చెబితే అది క్లాస్ యొక్క ఫంక్షన్ అని పిలువబడుతుంది, కాబట్టి b :: g () అని మనం పిలుస్తాము.
 B యొక్క చిరునామా ఇక్కడ నుండి ఇవ్వబడింది మరియు పారామితి ఇక్కడ నుండి పంపబడుతుంది.
 కాబట్టి, ఇవన్నీ ప్రాథమికంగా ఈ మూడింటికీ స్థిరమైన బంధాలు.
 కాబట్టి, నేను b కి బదులుగా ఉత్పన్నమైన క్లాస్ ఆబ్జెక్ట్ కలిగి ఉంటే మరియు ఉత్పన్నమైన క్లాస్ ఆబ్జెక్ట్ కోసం నేను అదే చేయటానికి ప్రయత్నిస్తే, అప్పుడు నాకు అదే స్టాటిక్ బైండింగ్ కోడ్ ఉంటుంది, ఇక్కడ ఈ కంపైలర్లలో ప్రతి ఒక్కటి రకం d అని తెలుసు మరియు అది నేరుగా వస్తువు ద్వారా లేదా పాయింటర్ ద్వారా ఉంటుంది, కానీ ఫంక్షన్ వర్చువల్ కానిది కనుక ఇది స్టాటిక్ కాల్‌లను ప్రారంభిస్తుంది.
 నేను నిజంగా పాయింటర్ (జి) పాయింటర్ వంటిదాన్ని పిలవాలనుకున్నప్పుడు సమస్య తలెత్తుతుంది, అనగా నేను కాలింగ్ వర్చువల్ ఫంక్షన్ మరియు నేను పాయింటర్ ఉపయోగిస్తున్నాను.కాబట్టి నాకు డైనమిక్ బైండింగ్ అవసరం.
 నేను పాయింటర్‌కు పాయింటర్ చెబుతున్నాను, నేను పాయింటర్‌ను ఉపయోగిస్తున్నాను మరియు నేను వర్చువల్ ఫంక్షన్‌ను ఉపయోగిస్తున్నాను.
 ఈ సందర్భంలో p అనేది వస్తువును తగ్గించడానికి ఒక పాయింటర్, ఈ సందర్భంలో కుడి వైపు B అనేది D వస్తువుకు పాయింటర్.
 కాబట్టి, నేను ఇక్కడ ఏమి కోరుకుంటున్నాను? ఈ కాల్ వాస్తవానికి ఈ ఫంక్షన్‌ను పరిష్కరిస్తుందని నాకు ఇక్కడ అవసరం.
 ఈ సందర్భంలో ఈ కాల్ ఈ ఫంక్షన్‌ను పరిష్కరిస్తుందని నాకు అవసరం.
 ఈ రెండు కాల్‌లు కాల్ సైట్‌లో ఒకేలా కనిపిస్తున్నప్పటికీ.
 నేను ఎలా చేయగలను? నేను ఆ మార్పును ఎలా చేయగలను? కాబట్టి నేను చేసే ప్రతిదీ చాలా సులభం.
 వస్తువు యొక్క లేఅవుట్ గురించి ఆలోచించండి, వస్తువుకు డేటా సభ్యుడు i ఉన్నారు, కాబట్టి నాకు డేటా సభ్యుడు i ఉన్నారు. ఇది వందతో సృష్టించబడింది.
 అందువల్ల, నాకు డేటా సభ్యుడు i, b :: i ఇక్కడ ఉన్న ప్రాంతం.
 అదేవిధంగా, నేను ఉత్పన్నమైన క్లాస్ ఆబ్జెక్ట్‌ను చూస్తే, దానికి ఒక డేటా సభ్యుడు (సభ్యుడు) j జతచేయబడుతుంది, కాబట్టి దీనికి బేస్ క్లాస్ భాగం 200 ఉంటుంది మరియు 500 అదనపు డేటా సభ్యుడు (సభ్యుడు) జోడించబడతారు.
 కాబట్టి ఇవి బాగున్నాయి.
 ఇప్పుడు మనం చేసేది మనం మరొక ఫీల్డ్‌ను జతచేయడం, అది వస్తువులో దాఖలు చేసిన మరొకదాన్ని జోడించడం అదృశ్య క్షేత్రం.
 ఈ ఫీల్డ్ ఒక పాయింటర్ మరియు అది సూచించేది, ఇది ఫంక్షన్ పాయింటర్ల పట్టికను సూచిస్తుంది మరియు ఈ పట్టికను VFT లేదా వర్చువల్ టేబుల్ అంటారు.
 నేను క్లాస్ బిలో ఉన్నాను మరియు నేను కోడ్‌ను చూడటానికి ప్రయత్నిస్తున్నప్పుడు, నాకు వర్చువల్ ఫంక్షన్ పాయింటర్ ఉంది మరియు నాకు వర్చువల్ ఈజ్ ఫంక్షన్ ఉంది.
 కాబట్టి నేను ఈ పట్టికలో ఈ పాయింటర్‌ను ఉంచిన వర్చువల్ ఫంక్షన్‌ను ఈ పట్టికలో ఉంచాను.
 మరియు ఈ ఫంక్షన్ కోసం నాకు కాల్ వచ్చినప్పుడు, ఈ వర్చువల్ పాయింటర్ ద్వారా, నేను ఇలాంటి కోడ్‌ను ఉత్పత్తి చేయను, నేను ఈ స్టాటిక్ కోడ్‌ను ఉత్పత్తి చేయను. బదులుగా నేను ఈ విధంగా ఒక కోడ్‌ను ఉత్పత్తి చేస్తాను.
 ఈ వాక్యనిర్మాణంతో గందరగోళం చెందకండి, ఏమి చెప్పబడుతోంది? పి ఒక పాయింటర్.
 కాబట్టి p ఒక పాయింటర్, కాబట్టి p ఇక్కడ సూచిస్తుంది.
 పాయింటర్ VFT అంటే ఏమిటి? ఈ పట్టిక కోసం పాయింటర్ VFT వివరించబడింది.
 మరియు పాయింటర్ (పాయింటర్) VFT ఈ పట్టికకు సూచించబడితే, అప్పుడు పాయింటర్ (పాయింటర్) VFT 0 ఈ పట్టిక యొక్క 0 వ ప్రవేశం, మరియు ఆ ప్రవేశం ఏమిటి? ఆ ఎంట్రీ ఫంక్షన్ పాయింటర్.
 కాబట్టి, p పాయింటర్ VFT 0 పట్టికలో 0 వ ఫంక్షన్ పాయింటర్.
 కాబట్టి, మీరు పాయింటర్ గ్రా పొందినప్పుడల్లా, ఈ స్థలంలో ఏ ఫంక్షన్ అయినా మీరు నిజంగా పిలుస్తారు.
 కాబట్టి మీరు ఈ ఫంక్షన్‌ను ఎంచుకుని, పారామితులతో కాల్ చేయండి, ఈ పాయింటర్ యొక్క పారామితులు p మరియు అసలు పారామితి విలువ 45.
 కంపైలర్ స్టాటిక్ టైమ్ కోడ్‌ను ఉత్పత్తి చేయదు, ఇది వర్చువల్ ఫంక్షన్ అని తెలుసుకోవడం మరియు అది పాయింటర్ ద్వారా ఆరంభించబడిందని తెలుసుకోవడం, పని చేయడం కష్టం వంటివి కోడ్ చేస్తుంది, కానీ కాల్‌ను వర్చువల్ ఫంక్షన్ టేబుల్ ద్వారా ఉంచుతుంది.
 అది ఎలా సహాయపడుతుంది? ఇది సహాయపడే మార్గం మీరు ఇప్పుడు దిశలో ఒక స్థాయిని కలిగి ఉన్నారు.
 కాబట్టి మీరు ఈ క్లాస్ (క్లాస్ బి) ను క్లాస్ డిగా స్పెషలైజ్ చేసినప్పుడు ఏమి జరుగుతుంది మరియు మీరు ఆ వస్తువు కోసం ఒక వస్తువును నిర్మిస్తారు, ఇందులో వర్చువల్ టేబుల్ ఫంక్షన్ పాయింటర్ కూడా ఉంటుంది.
 వర్చువల్ ఫంక్షన్ పట్టికను సూచిస్తూ, ఈ పట్టిక ఇప్పుడు క్లాస్ డికి చెందినది, ఈ పట్టిక క్లాస్ బి.
 ఇప్పుడు నేను d తరగతిలో ఏమి చేసాను? క్లాస్ d లో ఈ ఫంక్షన్ (వర్చువల్) ఫంక్షన్ g ఓవర్రైడ్ చేయబడింది, కొత్త నిర్వచనం ఇవ్వబడింది, అది ఇప్పుడు d :: g గా మారింది.
 కాబట్టి, మేము స్పెషలైజేషన్‌ను అనుసరించినప్పుడు, ఈ ఫంక్షన్‌ను బి యొక్క వర్చువల్ టేబుల్ నుండి తొలగిస్తాము మరియు ఓవర్రైడింగ్ ద్వారా మనం వ్రాసిన ఫంక్షన్‌ను ఇన్సర్ట్ చేస్తాము అంటే వర్చువల్ ఫంక్షన్ టేబుల్‌లో డి, డి-కొలోన్-కొలోన్ జి కొరకు ఒక ఫంక్షన్ ఉంది.
 మరియు ఈ కాల్ కోసం, కంపైలర్ అదే పరోక్ష కోడ్‌ను ఉత్పత్తి చేస్తుంది.
 ఇప్పుడు ఏమి జరుగుతుంది? ఇప్పుడే ఆలోచించడం మానేయండి.
 ఇది కాల్ మరియు ఇది కంపైలర్ ఉత్పత్తి చేయబడిన ఫంక్షన్.
 ఇవి సృష్టించబడుతున్న కాల్‌లు, ఇది స్థిరమైన సమయానికి కారణమవుతుంది.
 ఇప్పుడు ఏమి జరుగుతుందంటే, P వాస్తవానికి అబ్ వస్తువుకు సూచించే రెండు దృశ్యాలు ఉన్నాయి.
 ఇది ab ఆబ్జెక్ట్‌కు సూచించినట్లయితే, దానికి వర్చువల్ ఫంక్షన్ పాయింటర్ ఉంది, అది b యొక్క ఈ వర్చువల్ ఫంక్షన్ టేబుల్‌కు వెళుతుంది.
 ఈ ఫంక్షన్ 0 యొక్క 0 వ ఫంక్షన్‌ను ఎంచుకుంటుంది మరియు పిలుస్తుంది, కాబట్టి దీనిని b :: g అంటారు.
 P ఇక్కడ ప్రకటన వస్తువును సూచిస్తుంటే, దానికి ప్రత్యేక ఫంక్షన్ పాయింటర్, వర్చువల్ ఫంక్షన్ పాయింటర్ ఉంది.
 ఆ పాయింటర్ VP పాయింటర్ VFT ను గుర్తించినప్పుడు, ఇది వాస్తవానికి d యొక్క వర్చువల్ ఫంక్షన్ పట్టికను పొందుతుంది.
 ఇది ఫంక్షన్ అయిన 0 వ ఫంక్షన్‌ను ఎన్నుకుంటుంది, ఇది ఇప్పుడు d :: g తో జరుగుతుంది ఎందుకంటే ఇది వాస్తవానికి యాడ్ ఆబ్జెక్ట్‌కు సూచిస్తుంది కాబట్టి ఈ పట్టిక భిన్నంగా ఉంటుంది.
 అప్పుడు అది పారామితులను దాటి సహజంగా D :: G ని పిలుస్తుంది a.
 దీనితో, ఫంక్షన్ పాయింటర్ యొక్క పట్టిక యొక్క సరళమైన విధానం, కాబట్టి దీని నుండి మనం నేర్చుకునేది ఏమిటంటే, ఒక తరగతి పాలిమార్ఫిక్ అయితే ఒక రకం పాలిమార్ఫిక్ అయితే కనీసం ఒక వర్చువల్ (వర్చువల్) ఉంటే అది ఒక ఫంక్షన్, అప్పుడు a ఆ తరగతి కోసం వర్చువల్ (ఫంక్షన్) పట్టిక, ఇది అన్ని వర్చువల్ ఫంక్షన్లను కలిగి ఉంటుంది, అవి ఆ క్రమంలో పట్టికలో ఒకదాని తరువాత ఒకటి జాబితా చేయబడతాయి.ఇవి నిర్వచించబడ్డాయి.
 ఇక్కడ మనకు ఒకే ఎంట్రీ ఉంది ఎందుకంటే మనకు ఒకే వర్చువల్ ఫంక్షన్ ఉంది.
 ఇంకా ఎక్కువ ఉంటే, ఎక్కువ ఎంట్రీలు ఉంటాయి మరియు క్లాస్ ప్రత్యేకమైనందున కంపైలర్ వర్చువల్ (వర్చువల్) ఫంక్షన్ (ఫంక్షన్) ను క్లాస్ పునర్నిర్వచించటానికి తనిఖీ చేస్తుంది.) అలా చేస్తే ఫంక్షన్ టేబుల్‌లోని సంబంధిత ఎంట్రీని వెర్షన్‌తో భర్తీ చేస్తుంది అది భర్తీ చేస్తుంది.
 ఆపై ఎప్పుడూ ప్రత్యక్ష కాల్‌కు బదులుగా కాల్ చేస్తుంది, ఇది ఒక స్టాటిక్ టైప్ కాల్‌గా ఉంటుంది, ఇక్కడ ఇది ఫంక్షన్ ఏమిటో స్పష్టంగా చెబుతుంది, ఇది రన్‌టైమ్‌లో ఫంక్షన్ గురించి నాకు చెబుతుంది. టేబుల్ 0 వ ఫంక్షన్ కాదా అని నాకు తెలియదు మరియు ఏదైనా ఫంక్షన్ (పాయింటర్) మీ ఫంక్షన్.
 అందువల్ల, వర్చువల్ ఫంక్షన్ (ఫంక్షన్) పట్టిక వస్తువు యొక్క రకాన్ని బట్టి మారుతుంది, కానీ అదే యంత్రాంగం ద్వారా 0 వ స్థానంలో ఈ ఫంక్షన్ (ఫంక్షన్) కోసం రన్‌టైమ్ ఎంట్రీ తగిన విధంగా ఆధారపడి ఉంటుంది. ఒక ఫంక్షన్ కోసం ఒక పాయింట్ పిలువబడుతుంది తరగతి లేదా ఫంక్షన్‌లో.
 ఉత్పన్నమైన తరగతి నేను ఏ రకమైన వస్తువును కలిగి ఉన్నానో దానిపై ఆధారపడి ఉంటుంది మరియు అందువల్ల నేను ఏ రకమైన వర్చువల్ ఫంక్షన్ (టేబుల్) ను సూచిస్తున్నాను.
 ప్రాథమిక వర్చువల్ ఫంక్షన్ ఒక పాయింటర్ టేబుల్ సిస్టమ్, దీని ద్వారా మనం పనులు చేయవచ్చు.
 ఒక తరగతి వర్చువల్ ఫంక్షన్‌ను నిర్వచించినప్పుడల్లా నేను చెప్పినట్లుగా, ఇక్కడ సూచించే తరగతికి దాచిన సభ్యుల వేరియబుల్ జోడించబడుతుంది.
 మరియు రన్‌టైమ్ సమయంలో, దాని ద్వారా పరోక్షంగా ఆహ్వానం సంభవిస్తుంది మరియు దీనిని RTTI అంటారు.
 మొత్తం పాలిమార్ఫిక్ సిస్టమ్ యొక్క రన్-టైమ్ రకం సమాచారం అయిన RTTI గురించి మేము మరింత మాట్లాడతాము.
 ఇది మరొక ఉదాహరణ, మేము కంపల్సివ్ ప్రాక్టీస్‌గా పరిష్కరించిన ఉదాహరణ కాబట్టి ఇది మీ తదుపరి ఉదాహరణ కోసం అని మీరు ఇక్కడ చూడవచ్చు.
 ఇది ప్రధానంగా మీ స్వంత పని చేయడం కోసం, కానీ మాకు క్లాస్ ఎ ఉంది మరియు మనకు క్లాస్ సి ఉందని నిర్దేశించిన దానికంటే క్లాస్ బి కలిగి ఉండటం చాలా నిర్దిష్టంగా ఉంది.
 మరియు తరగతి A కి పాలిమార్ఫిక్ ఫంక్షన్ ఉంది, ఇది వర్చువల్ ఫంక్షన్, కాబట్టి సహజంగా మొత్తం సోపానక్రమం పాలిమార్ఫిక్ మరియు అందువల్ల, ఈ సోపానక్రమంలో ఏదైనా తరగతి తరగతిలోని అన్ని వస్తువులపై వర్చువల్ టేబుల్ పాయింటర్ ఉంటుంది.
 నేను ఆబ్జెక్ట్ A కలిగి ఉంటే, ఆబ్జెక్ట్ A అని చెప్పండి, అప్పుడు డేటా సభ్యులు (సభ్యులు) ఆసక్తికరంగా ఉండరు కాబట్టి మేము వాటిని జాబితా చేయలేదు, కానీ దీనికి వర్చువల్ ఫంక్షన్ ఉంది (ఫంక్షన్) పట్టిక సూచించే పాయింటర్ అవుతుంది తరగతి A యొక్క VFT మరియు ఎన్ని ఎంట్రీలు ఉంటాయి? వర్చువల్ ఫంక్షన్ f మరియు వర్చువల్ ఫంక్షన్ g ఉంది.
 కాబట్టి వర్చువల్ ఫంక్షన్ ఉంది వర్చువల్ ఫంక్షన్ g.
 కానీ అది B లో నైపుణ్యం పొందినప్పుడు మీరు H కి వర్చువల్ టాస్క్ కూడా చేసారు.
 అప్పుడు ఏమి జరుగుతుంది? స్థానం రెండవ స్థానానికి మూడవ ఫంక్షన్ (ఫంక్షన్) జోడించబడుతుంది.
 మరియు 0 మరియు 1 కి ఏమి జరుగుతుంది? F ను A గా నిర్వచించారు మరియు ఇది B పైన ఉన్న తల పేరు.
 కాబట్టి, f కొరకు 0 వ ఎంట్రీ దాచబడింది.
 ఇప్పుడు, పెద్దప్రేగు-పెద్దప్రేగు f కి బదులుగా మీకు b :: f ఉంది.
 G కూడా వర్చువల్ ఫంక్షన్‌గా నిర్వచించబడింది, ఎందుకంటే ఇది స్థానం A లో నివసిస్తుంది, కాని క్లాస్ B G ని ఓవర్రైట్ చేయదు.
 అందువల్ల, మీరు వారసత్వంగా పొందినప్పుడు, మీరు ఫంక్షన్ నంబర్ వన్ వలె అదే :: g ను పొందుతారు.
 మరియు h మీరు దీన్ని వర్చువల్ ఫంక్షన్ చేసారు, కాబట్టి వర్చువల్ ఫంక్షన్ టేబుల్ అదనపు ఫంక్షన్ పాయింటర్‌తో కలుస్తుంది.
 మీరు చేసిన సి ఆబ్జెక్ట్‌కు వచ్చినప్పుడు మీరు జి.
 కాబట్టి, మీకు లభించేది, మీరు F తో ఏమీ చేయలేదు, కాబట్టి F కేవలం వారసత్వంగా వచ్చింది.
 కాబట్టి మీకు 0 వ ఎంట్రీలో బి :: ఎఫ్ వచ్చింది, ఇది బి-కొలోన్-కొలోన్ ఎఫ్.
 కానీ ఈ ఎంట్రీ సంఖ్య ఒక :: g, కానీ ఇప్పుడు మీరు వ్రాశారు, కాబట్టి ఇది సి-కోలన్-కోలన్ గ్రాతో వ్రాయబడింది.
 ప్రవేశ సంఖ్య రెండు B ::.
 క్లాస్ B లో, ఇక్కడ వ్రాయబడిన H ఫంక్షన్, కాబట్టి మీరు C :: H ను పొందుతారు, ఇది వర్చువల్ టేబుల్ ఎలా పెరుగుతుంది మరియు ఇది ప్రాథమికంగా మీకు తెలియజేస్తుంది ఈ సోపానక్రమం వర్చువల్ అయిన తర్వాత, వర్చువల్ అలాగే ఉండాలి ఎందుకంటే ఒకసారి కంపైలర్ సృష్టించాలని నిర్ణయించుకున్నప్పుడు మరియు ఈ కోడ్ యొక్క సంకలన సంస్కరణ ఏమిటో ఇక్కడ చూపించాను
 కాబట్టి ఇది వర్చువల్ ఫంక్షన్ టేబుల్ ఎంట్రీ 0 కి వెళుతుందని మీరు చెప్పవచ్చు, కానీ టేబుల్ ఎంట్రీ 1 కి వెళుతుంది, కాని నేను స్టాటిక్ బైండింగ్ కలిగి ఉంటే నేను పాయింటర్ చేస్తాను, స్పష్టమైన ఫంక్షన్ (ఫంక్షన్) అని పిలుస్తుంది ఎందుకంటే ఈ ఫంక్షన్ (ఫంక్షన్) వర్చువల్ కానిది .
 నేను పిబితో దీన్ని చేసినప్పుడు, అది క్లాస్ బి రకానికి చూపబడుతుంది, అప్పుడు వారు దానిని వర్చువల్ ఫంక్షన్ టేబుల్ ద్వారా బయటకు తీసుకువస్తారు ఎందుకంటే ఇక్కడ క్లాస్ బి లో వర్చువల్) ఫంక్షన్ జరుగుతుంది.
 కాబట్టి దయచేసి దానిపై పని చేయండి, దయచేసి ఈ నిర్మాణాన్ని చాలా జాగ్రత్తగా అర్థం చేసుకోవడానికి ప్రయత్నించండి మరియు ఈ మూల వ్యక్తీకరణ ద్వారా మరియు మీరు ఎక్కడ స్టాటిక్ బైండింగ్ మరియు మీకు డైనమిక్ బైండింగ్ ఉన్న సంకలనం చేసిన వ్యక్తీకరణకు వ్యతిరేకంగా పని చేయండి, తద్వారా మీరు కూడా అర్థం చేసుకుంటారు.
 సి లో ఫంక్షన్ పాయింటర్లను ఉపయోగించే ఉద్యోగుల జీతం అనువర్తనాల కోసం దాని ప్రయోజనాలు మరియు వినూత్న పరిష్కారాలను సంగ్రహించడానికి, వర్చువల్ ఫంక్షన్ (ఫంక్షన్) పాయింటర్ పట్టికలను ఉపయోగించి వర్చువల్ ఫంక్షన్లు ఎలా అమలు చేయబడుతున్నాయో చెప్పడానికి మేము పునాది వేసాము.
 దయచేసి దీన్ని మరింత స్పష్టంగా అర్థం చేసుకోవడానికి ప్రయత్నించండి, తద్వారా డైనమిక్ ట్రాన్స్మిషన్ గురించి ఏదైనా గందరగోళం మీ మనస్సులో స్పష్టంగా కనిపిస్తుంది.