Default Parameters and Function Overloading (Contd.) (Lecture 14)-N4gpIkQKUbc 43.3 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 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 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199
 C++ లో ప్రోగ్రామింగ్ మాడ్యూల్ 8 కు స్వాగతం.
 మేము ఇప్పటికే డిఫాల్ట్ పారామితులను చర్చించాము మరియు ఫంక్షన్ ఓవర్‌లోడింగ్, ఫంక్షన్‌ను ఓవర్‌లోడ్ చేయడం మరియు ఫంక్షన్‌లను ఓవర్‌లోడ్ చేయడం ఎలా అనే దాని గురించి మేము చర్చించాము. అంటే, సి ++ ఒకే పేరుతో బహుళ ఫంక్షన్లను కలిగి ఉండవచ్చు.
 కానీ, పారామితుల రకం, సంఖ్య మరియు పారామితుల రకాన్ని బట్టి అవి విభిన్నంగా ఉంటాయి.
 మరియు, రిటర్న్ రకంతో ఫంక్షన్లను ఓవర్లోడ్ చేయలేమని మేము చూశాము.
 ఇప్పుడు, ఓవర్లోడ్ రిజల్యూషన్ యొక్క సంగ్రహావలోకనం ఇవ్వడానికి మేము ముందుకు వెళ్తాము.
 ఓవర్లోడ్ రిజల్యూషన్ అనేది కంపైలర్ అనేక అభ్యర్థి ఫంక్షన్ల మధ్య నిర్ణయించే ప్రక్రియ, ఓవర్లోడ్ ఫంక్షన్ యొక్క బహుళ అభ్యర్థి నిర్వచనాలు ఉన్నాయి.
 కంపైలర్ అతను ఏది కట్టాలి అని నిర్ణయించుకోవాలి.
 ఇది ఓవర్‌లోడ్ రిజల్యూషన్, ఫంక్షన్ ఓవర్‌లోడింగ్‌లో కొద్దిగా అభివృద్ధి చెందిన అంశం.
 కాబట్టి, మీరు ఈ దశలో నిర్వహించడం కొంచెం కష్టమైతే, మీరు దానిని నిషేధంలో ఉంచవచ్చు మరియు సి ++ లో ఓవర్‌లోడింగ్ యొక్క లోతు గురించి చర్చించినప్పుడు మీరు తిరిగి రావచ్చు.
 అందువల్ల, ఓవర్లోడ్ పనులను ఎలా పరిష్కరించాలో ఇక్కడ మీకు ప్రాథమిక ఆలోచన ఇవ్వడానికి ప్రయత్నిస్తాము.
 విషయాలు సరళంగా ఉంచడానికి నేను కేవలం ఒక పరామితితో ఇక్కడ ఉదాహరణను ఉపయోగిస్తున్నాను.
 అభ్యర్థి ఫంక్షన్ల సమితిని గుర్తించే ప్రాథమిక దశలు ఇవి; అంటే, మీరు ముందు నిర్వచించిన అన్ని ఫంక్షన్లను స్కాన్ చేస్తారు.
 ఖచ్చితంగా, ఒక ఫంక్షన్ ఇప్పటికే నిర్వచించబడితే, దానిని పిలుస్తారు.
 కాబట్టి, కంపైలర్ ఈ కాల్‌కు ముందు ఇప్పటివరకు అందుకున్న అన్ని నిర్వచనాలను స్కాన్ చేస్తుంది మరియు అభ్యర్థి ఫంక్షన్ల సమితిని సృష్టిస్తుంది.
 అప్పుడు, ఇది అభ్యర్థి ఫంక్షన్ల సమితి ద్వారా స్కాన్ చేస్తుంది, ఇది సాధ్యమయ్యే ఫంక్షన్ల సమితిని కనుగొనడానికి అభ్యర్థి ఫంక్షన్ల సమితికి పాయింట్ స్కాన్.ఇది పారామితుల సంఖ్యకు అనుగుణంగా ఉంటుంది.
 ఆపై, ఇది కష్టతరమైన భాగాన్ని చేయడానికి ప్రయత్నిస్తుంది, అనగా, ఉత్తమమైన సాధ్యమయ్యే ఫంక్షన్ ఏమిటో నిర్ణయించండి.
 మరియు, దీన్ని చేయడానికి ఇది క్రింది వ్యూహాలను ఉపయోగిస్తుంది.
 మరియు, దయచేసి ఇక్కడ ఆర్డర్ ముఖ్యం అని గమనించండి.
 అంటే, ఇది ఏకపక్షంగా కాకుండా వ్యూహాలకు వర్తిస్తుంది.
 కానీ, ఖచ్చితమైన సరిపోలిక, ప్రమోషన్, ప్రామాణిక రకం మార్పిడి మరియు వినియోగదారు నిర్వచించిన రకం మార్పిడి యొక్క ఈ క్రమంలో.
 ఇప్పుడు, ఖచ్చితంగా మేము ఇక్కడ అన్నింటినీ వివరించలేము.
 అందువల్ల, మేము చాలా తరువాతి దశలో కూడా దీనికి తిరిగి వస్తాము.
 ప్రస్తుతానికి, ఖచ్చితమైన సరిపోలికను ఉపయోగించి రిజల్యూషన్ ఎలా చేయబడుతుందనేదానికి ఒక సాధారణ ఉదాహరణను నేను మీకు చూపిస్తాను మరియు ఖచ్చితమైన మ్యాచ్ యొక్క స్థాయి మరియు ప్రమోషన్ యొక్క పరిధి గురించి కొంచెం మాట్లాడతాను.
 కాబట్టి, ఒక ఉదాహరణ తీసుకుందాం.
 పరామితితో ఓవర్లోడ్ రిజల్యూషన్ యొక్క ఉదాహరణ తీసుకుందాం.
 అనుకో; ఇక్కడ ఎగువన ఉన్న జాబితాపై దృష్టి పెట్టండి.
 ఈ జాబితాపై దృష్టి పెడదాం.
 ఒక నిర్దిష్ట ఫంక్షన్ (ఫంక్షన్) యొక్క f పేరు మరియు పారామితి 5.6 కు సరిగ్గా సరిపోయే ఫంక్షన్ ఏమిటో తెలుసుకోవడం మన లక్ష్యం అని అనుకుందాం.
 అంటే, నేను f (5.6) అని చెప్పినట్లయితే, వినియోగదారు చెప్పినట్లయితే, ఏ నిర్దిష్ట ఫంక్షన్ (ల) లో వినియోగదారు కాల్ చేయాలనుకుంటున్నారు.
 అందువల్ల, 8 వేర్వేరు ఫంక్షన్ (ఫంక్షన్) శీర్షికలు లేదా ఫంక్షన్ (ఫంక్షన్) నిర్వచనాలను కంపైలర్ (కంపైలర్) చూసే ముందు f (5.6) యొక్క కాల్ ఎదురైంది.
 మరియు, వాటిని సులభంగా సూచించడానికి మేము వాటిని F1 నుండి F8 అని పిలుస్తాము.
 ఇప్పుడు, మీరు ఎలా నిర్ణయిస్తారు? కాబట్టి, వాస్తవానికి f (5.6) యొక్క కాల్ వాటిలో ఒకదానితో సమానంగా ఉండాలి, తద్వారా ఒక నిర్దిష్ట ఫంక్షన్ (ఫంక్షన్) అని పిలువబడుతుందని నేను చెప్పగలను.
 కాబట్టి, తీర్మానంలో దశలు ఏమిటి? మీరు ఇక్కడ చూస్తే, మీరు ప్రతిపాదనలలో దశలను ఉపయోగిస్తే, మొదట మీరు అభ్యర్థి ఫంక్షన్‌ను సృష్టించండి.
 ఈ సందర్భంలో, అభ్యర్థి ఫంక్షన్‌ను నిర్మించడానికి సరళమైన మార్గం పేరు కోసం వెతకడం మరియు సరిపోలే పేరు ఉన్న ఫంక్షన్‌ను కనుగొనడం.
 ఇక్కడ, మాకు ఇతర అంశాలు లేవు.
 కాబట్టి, మేము పేరు ద్వారా వెళ్తాము; పేరు ఇక్కడ f.
 కాబట్టి, f పేరు ఉన్న ఫంక్షన్లు ఏవి అని చూద్దాం; ఈ ఫంక్షన్, ఈ ఫంక్షన్, ఈ ఫంక్షన్, ఈ ఫంక్షన్.
 కాబట్టి ఎఫ్ 2, ఎఫ్ 3, ఎఫ్ 6, ఎఫ్ 8 నా అభ్యర్థులు.
 వాస్తవానికి, నేను f (5.6) అని చెబితే, g కి పరామితి ఉన్నప్పటికీ, g కి రెట్టింపు పారామితి రకాన్ని కలిగి ఉన్నప్పటికీ, ఆ ఫంక్షన్ (g) అని అర్ధం కాదు, ఇది 5.6 రకం.
 కానీ, నా పేర్లు భిన్నంగా ఉన్నందున నేను అర్థం కాలేదు.
 అందువల్ల, నా అభ్యర్థి పనులు నాకు ఈ నాలుగు పనులను ఇస్తాయి.
 కాబట్టి, ఇప్పుడు, నేను ఈ అభ్యర్థి ఫంక్షన్ పై మాత్రమే దృష్టి పెడుతున్నాను.
 ఇప్పుడు దీని నుండి, ఈ అభ్యర్థి ఆధారంగా నేను చేసే తదుపరి స్క్రీనింగ్ పని పారామితుల సంఖ్యపై ఆధారపడి ఉంటుంది.
 అందువల్ల, ఈ అభ్యర్థి ఫంక్షన్లలో, పారామితుల సంఖ్య ఏమిటో నేను చూస్తున్నాను.
 కాబట్టి, నేను ఎఫ్ 2 ని చూస్తే, అది 0; నేను ఎఫ్ 3 ని చూస్తే, అది 1; నేను ఎఫ్ 6 ను చూస్తే, అది 2 లేదా 1 మరియు నేను చూస్తే అది 2.
 అందువల్ల, సంబంధిత అభ్యర్థి యొక్క విధులను పిలవడానికి అవసరమైన పారామితులు ఇవి.
 మరియు, మనకు ఇక్కడ ఎన్ని పారామితులు ఉన్నాయి? 5.6 - ఒక పరామితి.
 రెండవది, అది తిరస్కరించబడిందని వెంటనే పేర్కొంది.
 నేను f (5.6) నుండి F2 కి కాల్ చేయలేను.
 నేను ఒకే విధంగా చెప్పలేను ఎందుకంటే దీనికి రెండు పారామితులు అవసరం.
 కాబట్టి, నా ఎంపిక ఈ రెండింటికి దిమ్మదిరుగుతుంది; ఇది ఎఫ్ 3 లేదా ఎఫ్ 6.
 అందువల్ల, నేను వాటిని సాధ్యమయ్యే ఫంక్షన్ల సమితి అని పిలుస్తాను.
 ఇప్పుడు ఎఫ్ 3 మరియు ఎఫ్ 6 మధ్య, ఏది ఉపయోగించాలో నేను నిర్ణయించుకోవాలి.
 అందువల్ల, నేను వాస్తవానికి F3 ఫంక్షన్‌ను పిలుస్తున్నానని అనుకోవచ్చు, దీనికి సన్నిహిత పరామితి అవసరం.
 కాబట్టి, నేను ఫంక్షన్ (ఫంక్షన్) F3 అని పిలవాలనుకుంటే? ఈ పరామితి వాస్తవానికి డబుల్ పరామితి అని జరుగుతుంది; 5.6 రెట్టింపు.
 కాబట్టి, అది ఎఫ్ 3 అని పిలవాలంటే, ఈ డబుల్‌ను పూర్ణాంకానికి మార్చాలి; అంటే, కొన్ని తొలగింపులు జరగాలి.
 నిజానికి, కాల్ F5 అవుతుంది.
 ఆపై, నేను దానిని కాల్ చేయగలను.
 లేకపోతే, నేను F6 కి కాల్ చేయవచ్చు, ఇక్కడ, ఇది f (మొదటి పరామితిగా 5.6, రెండవ పరామితి అప్రమేయం).
 కాబట్టి, ఈ కాల్ {f (5.6,3.4) be కావచ్చు.
 కాబట్టి, అది కాల్ లేదా కాల్.
 ఇప్పుడు, ఖచ్చితమైన మ్యాచ్ నేను దీన్ని ఎన్నుకుంటానని చెప్తుంది ఎందుకంటే ఇక్కడ పారామితి రకం, అధికారిక పారామితి మరియు వాస్తవ పరామితి రకం ఈ రెండు మ్యాచ్‌లు.
 ఈ రెండు రెట్టింపు.
 దీనికి మరియు దీనికి మధ్య, నేను మార్చాల్సిన అవసరం రెట్టింపు.
 నేను మార్చాలి, నిజంగా దాన్ని కొనసాగించండి.
 కాబట్టి, ఇది ఇష్టమైనది కాదు.
 అందువల్ల, ఖచ్చితమైన మ్యాచింగ్ స్ట్రాటజీని ఉపయోగించి, టైప్ డబుల్ నా పరిష్కరించిన ఫంక్షన్ F6 అని చెబుతుంది.
 అందువల్ల, నేను పూర్తి చేసిన తర్వాత, మీరు ఈ ఫంక్షన్‌ను పిలిచారో లేదో కంపైలర్ నిర్ణయిస్తుంది.
 ఇది ఓవర్లోడ్ రిజల్యూషన్ యొక్క ప్రక్రియ.
 మరియు, ఇది చాలా క్లిష్టమైన ప్రక్రియ, ఎందుకంటే ఇది చాలా రకాలను కలిగి ఉంటుంది.
 కాబట్టి, అనేక విభిన్న కేసులు ఉండవచ్చు.
 మరియు, కాబట్టి ఒక కంపైలర్ వ్రాసేటప్పుడు, దానిని బాగా తెలుసుకోవాలి.
 ప్రోగ్రామర్‌గా, కొన్ని ఆలోచనలు కలిగి ఉండటం మంచిది, ఎందుకంటే మీరు ఒక నిర్దిష్ట ఓవర్‌లోడ్‌ను అర్థం చేసుకోవచ్చు.
 కంపైలర్ వేరే రకం ఓవర్‌లోడ్‌ను ఉపయోగించినట్లయితే, మీరు సరైన స్థానంలో తప్పు ఫంక్షన్‌ను ఉపయోగిస్తున్నారు.
 అందువల్ల, ఈ వ్యూహాలలో కొన్నింటిపై మనం దృష్టి పెట్టాలి.
 ఖచ్చితమైన మ్యాచ్ మునుపటిది.
 దీన్ని పరిష్కరించడానికి వివిధ మార్గాలు ఉన్నాయి, కేవలం రీక్యాప్ చేయడానికి, ఉత్తమ ఫంక్షన్, ఖచ్చితమైన మ్యాచ్ ప్రమోషన్ మరియు మొదలైనవి.
 కాబట్టి, మీరు ఖచ్చితమైన మ్యాచ్ ఏమిటో చూస్తున్నారు.
 కాబట్టి, ఖచ్చితమైన మ్యాచ్; ఇవి ఖచ్చితమైన మ్యాచ్ యొక్క విభిన్న సందర్భాలు.
 అంటే, మీరు ఒక విలువను 1 విలువకు మార్చవచ్చు; మీరు వేరియబుల్ ఉపయోగిస్తుంటే, ఈ పదం మీకు తెలియకపోతే, l విలువ తొలగించబడుతుంది లేదా ప్రాథమికంగా వేరియబుల్ యొక్క చిరునామా.
 మరియు, శత్రుత్వం ఒక విలువ; నిజమైన విలువ.
 కాబట్టి, ఇది నేను a = b (ఒక అసైన్ బి) వ్రాస్తున్నట్లయితే, అప్పుడు నాకు ఆసక్తి ఉన్నది b యొక్క విలువ.
 మరియు, నాకు ఆసక్తి ఉన్న విషయం ఏమిటంటే, నేను వెళ్లి బి విలువను ఉంచగల స్థలం.
 కాబట్టి, ఇక్కడ నేను 1 విలువ మరియు విలువపై ఆసక్తి కలిగి ఉన్నాను.
 కాబట్టి, మీరు 1 విలువ నుండి rvalue కు మార్చవలసి ఉంటుంది.
 ఇతర అవకాశాలు ఇలా ఉంటాయి, ఇక్కడ మీరు మార్పిడి చేస్తారు మరియు మీరు శ్రేణిని పాస్ చేయడానికి ప్రయత్నిస్తున్నారు, కాని వాస్తవ ఫంక్షన్‌కు పాయింటర్ అవసరం.
 మీరు ప్రాథమికంగా శ్రేణులను పాయింటర్లుగా మార్చవచ్చు.
 మీరు ఒక ఫంక్షన్‌ను పాయింటర్‌గా మార్చవచ్చు.
 ఉదాహరణకు, ఇది ఫంక్షన్ పాయింటర్.
 ఫంక్షన్ పాయింటర్లు ఏమిటో మనం చూశాము.
 ఇది నేను పరిష్కరించడానికి ప్రయత్నిస్తున్న ఫంక్షన్.
 అంటే, రెండవ పరామితి ఫంక్షన్ పాయింటర్; ఈ ప్రత్యేక పని సూచిక.
 కానీ, నేను దాటినది వాస్తవానికి ఒక ఫంక్షన్.
 నేను పాయింటర్ పాస్ చేయలేదు.
 కాబట్టి, నేను తప్పక పాస్ చేయాలి మరియు ఇది పాయింటర్ అయిన జి.
 అయితే, నేను ఫంక్షన్‌కు పేరు పెట్టాను.
 కాబట్టి, ఈ మార్పిడి మ్యాచ్‌గా అనుమతించబడుతుంది.
 మరియు, నేను పాయింటర్లను పాయింటర్లుగా మార్చగలను.
 కాబట్టి, ఇవి ఓవర్‌లోడ్ రిజల్యూషన్‌ను ఉపయోగించే ఖచ్చితమైన సరిపోలిక యొక్క విభిన్న సందర్భాలు.
 అదనంగా, మీరు ప్రమోషన్లు మరియు మార్పిడులు తీసుకోవచ్చు.
 ఉదాహరణకు, నేను ఒక అక్షరాన్ని పూర్ణాంకానికి, ఎనుమ్ నుండి పూర్ణాంకానికి, బూల్ పూర్ణాంకానికి మార్చగలను.
 లేదా, నేను డబుల్ ఫ్లోట్‌గా మార్చగలను, ఇతర రకాల సమగ్ర మార్పిడుల మధ్య తేలుతాను; ఆ రకాలను అన్ని రకాల పాయింటర్లకు మార్చవచ్చు.
 కాబట్టి, ఈ ప్రమోషన్లు మరియు పరివర్తనాలన్నీ ఓవర్‌లోడ్ రిజల్యూషన్ కోసం కూడా ఉపయోగించబడతాయి.
 ఇది మీకు ఒక సంగ్రహావలోకనం ఇవ్వడానికి మాత్రమే.
 మేము C ++ లో సాధ్యమయ్యే వివిధ రకాల ఓవర్‌లోడింగ్ గురించి మాట్లాడేటప్పుడు చాలా కాలం తరువాత దీనికి వస్తాము.
 కాబట్టి, ఇది మీకు ప్రాథమిక ఆలోచనను ఇవ్వడం.
 ఇప్పుడు, నేను పూర్తి చేస్తాను.
 నేను పూర్తి చేయడానికి ముందు, ఓవర్‌లోడ్ రిజల్యూషన్ వివిధ సందర్భాల్లో విఫలం కావచ్చని కూడా చూపిస్తాను.
 మరియు, మీరు ఆ వ్యక్తుల గురించి జాగ్రత్తగా ఉండాలి.
 ఉదాహరణకు, ఈ మూడు రచనలను ఇక్కడ చూడండి; ఫంక్షన్ 1 లో ఫ్లోట్ ఉంది, ఫంక్షన్ 2 కి రెండు పారామితులు ఉన్నాయి, ఫంక్షన్ 2 లో ఒక డిఫాల్ట్ తో రెండు పారామితులు కూడా ఉన్నాయి.
 మరియు, ఇది మీరు చేయడానికి ప్రయత్నిస్తున్న ఉపయోగం.
 కాబట్టి, మీరు దాన్ని పరిష్కరించడానికి ప్రయత్నిస్తే, మొదట కాల్ చేయండి - 1, ఇది రెండు పారామితులను తీసుకుంటుంది, అప్పుడు మీ అభ్యర్థులు ఏమిటి? మూడు విధులు మీ అభ్యర్థులు; ఫంక్షన్ 1, 2, 3, ఎందుకంటే పేరు సరిపోతుంది.
 ఇప్పుడు, ఆచరణీయమైనది ఏమిటి? సాధ్యమయ్యే పారామితుల సంఖ్యను చూస్తే.
 ఇది ఫంక్షన్ 2 మరియు ఫంక్షన్ 3.
 ఇప్పుడు ఈ రెండింటి మధ్య ఫంక్షన్ 2 మరియు ఫంక్షన్ 3 లలో ఏది ఉత్తమమైనది? P ఏది ఉత్తమమో చెప్పడం కష్టం, ఎందుకంటే p ఇక్కడ ఫ్లోట్, ఇది ఈ రెండు ఫంక్షన్ల యొక్క మొదటి పారామితి రకానికి సరిపోతుంది.
 మనం సెకనులో చూస్తే, ఇది s, int, ఇది ఈ రెండు ఫంక్షన్ల యొక్క రెండవ పారామితి రకానికి అనుగుణంగా ఉంటుంది.
 అందువల్ల, ఫంక్షన్ 2 మరియు ఫంక్షన్ 3 మధ్య పరిష్కరించడం మీకు సాధ్యం కాదు.
 కాబట్టి, మాకు అలాంటి కాల్ ఉంటే, కంపైలర్ తిరిగి వచ్చి మీకు చెప్తుంది, అది అస్పష్టంగా ఉంది.
 కంపైలర్ "నేను అయోమయంలో ఉన్నాను, ఏమి చేయాలో నాకు తెలియదు" అని చెబుతుంది.
 కాబట్టి, ఇవి వివిక్త కేసులు, ఇక్కడ ఓవర్‌లోడ్ రిజల్యూషన్ విఫలమవుతుంది.
 రెండవది మనం ఒక ఫంక్షన్ కోసం ఒక పరామితిని మాత్రమే ఉపయోగిస్తున్న మరొక సందర్భం.
 కాబట్టి, సహజంగానే మీ అభ్యర్థులు ముగ్గురూ మళ్ళీ.
 అయితే, మీ సాధ్యమయ్యేది రెండు ఆచరణీయమైనది కాదు ఎందుకంటే ఇక్కడ మీరు కేవలం ఒక పరామితిని ఉపయోగిస్తున్నారు.
 ఫంక్షన్ 2 కి రెండు పారామితులు అవసరం.
 కాబట్టి, ఈ రెండూ ఆచరణీయమైనవి.
 అయితే, ఈ రెండూ సాధ్యమైతే, మీరు వాటి మధ్య తేలికగా పరిష్కరించలేరు ఎందుకంటే మీరు మార్పిడి ద్వారా, Int యొక్క ఫ్లోట్ ద్వారా ప్రచారం చేయవచ్చు; మేము ఇప్పుడే చూశాము
 లేదా, ఇది అప్రమేయంగా 3 కాల్స్ చేయవచ్చు.
 మరియు, ఇది మళ్ళీ తేలుటకు మరొక ప్రమోషన్.
 కాబట్టి, రెండూ ఒకే రకమైన, మీకు తెలిసిన, ప్రయత్నం, ఒకే రకమైన సంక్లిష్టతను కలిగి ఉంటాయి.
 కాబట్టి, ఇది అస్పష్టతకు దారితీస్తుంది.
 అందువల్ల, మీరు ఓవర్‌లోడ్ ఫంక్షన్లను వ్రాసినప్పుడల్లా, అలాంటి సందర్భాలు మీ కోడ్‌లో లేవని లేదా కంపైలర్ (కంపైలర్) దానిని కంపైల్ చేయడానికి నిరాకరించి, అస్పష్టత ఉందని చెబితే, దయచేసి ఈ పరిస్థితులలో కొన్నింటిని చూడండి .
 ఇప్పుడు మీ కోడ్, ఇప్పుడు మేము డిఫాల్ట్ పారామితులను చూశాము మరియు ఫంక్షన్ ఓవర్లోడింగ్ చూశాము.
 ఇప్పుడు, మేము వాటిని ఒకే మాడ్యూల్‌లో ఉంచడానికి కారణం అవి ప్రాథమికంగా ఉండటం మాత్రమే అని మీరు చూడవచ్చు; ప్రధానంగా అవి డిఫాల్ట్ పారామితి విషయంలో తప్ప, డిఫాల్ట్ పారామితి విషయంలో తప్ప, అదే లక్షణం.
 భాషలో మొత్తం వ్యవస్థ ఒకేలా ఉంటుంది.
 కాబట్టి, మేము ఇక్కడ ఎడమ మరియు కుడి నిలువు వరుసల నుండి ఈ రెండు కోడ్‌లను పరిశీలిస్తే మరియు మీరు ప్రధాన ఫంక్షన్‌ను పరిశీలిస్తే, ఇక్కడ ప్రధాన ఫంక్షన్ ఒకే విధంగా ఉంటుంది.
 ఇది, ఈ రెండింటిపై ఒకే కోడ్.
 ఇక్కడ మనకు రెండు ఫంక్షన్లతో ఫంక్షన్ డిఫాల్ట్ ఉంది మరియు ఇక్కడ మనకు మూడు ఫంక్షన్లు ఓవర్లోడ్ ఉన్నాయి.
 ఇప్పుడు కాల్స్ సందర్భంలో, మూడు కాల్స్ ఒకే ఫంక్షన్‌ను పరిష్కరిస్తాయి.
 అలాగే, ఇది మీరు ఎన్ని పారామితులను ఉపయోగిస్తున్నారనే దానిపై ఆధారపడి ఉంటుంది.
 మరియు ఇక్కడ, వారు సంబంధిత పనుల కోసం రిజల్యూషన్ చేస్తారు, దానిపై ఆధారపడి ఇది సాధారణ రిజల్యూషన్; ఎందుకంటే ఈ సందర్భాలలో, మీరు అర్థం చేసుకోగలిగినట్లుగా, ముగ్గురు అభ్యర్థులు మాత్రమే సెట్‌లో ఉంటారు.
 మరియు, ప్రతి సందర్భంలోనూ సాధ్యమయ్యే సెట్‌లో ఒకే ఒక ఫంక్షన్ ఉంటుంది.
 కాబట్టి, చూడటానికి ఏమీ లేదు.
 కాబట్టి, ప్రాథమికంగా మీరు ఆలోచించగలిగేది ఏమిటంటే, మీరు ఫంక్షన్ యొక్క సమితిని, ఫంక్షన్ యొక్క పారామితులను డిఫాల్ట్ చేస్తే, మీకు ఎల్లప్పుడూ డిఫాల్ట్ పారామితి ఉంటుంది, ఈ కాల్ సైట్‌లో ఉండవచ్చు లేదా ఉనికిలో ఉండకపోవచ్చు. .
 కాల్ సైట్లో.
 దానిపై ఆధారపడి, మీరు ఒకే ఫంక్షన్ కోసం రెండు వేర్వేరు సంతకాలను సృష్టిస్తున్నారు.
 అందువల్ల, నేను చెప్పేది ఏమిటంటే, నేను ఈ ఫంక్షన్ వ్రాస్తే; అంటే, నేను Int (int) int (int) తో int (int) అని చెప్పగలను, ఇది ప్రాథమికంగా ఈ ఓవర్లోడ్.
 నేను రెండవ పరామితిని వదిలివేయగలనని కూడా దీని అర్థం.
 కాబట్టి, నేను దీనిని ఒక పూర్ణాంకంతో (పూర్ణాంకానికి) చెప్పగలను, ఇది ఈ ఓవర్లోడ్.
 నేను ఏ పరామితిని పేర్కొనలేనని కూడా దీని అర్థం.
 పరామితి లేకుండా కాల్ చేయండి, ఇది ఈ ఓవర్లోడ్.
 అందువల్ల, డిఫాల్ట్ పరామితి ప్రాథమికంగా ఓవర్‌లోడింగ్ ఫంక్షన్ యొక్క ప్రత్యేక సందర్భం తప్ప మరొకటి కాదు.
 అదనపు లక్షణంతో ఇది పరామితి విలువతో పాటు ప్రారంభంలో ఉన్న ఓవర్‌లోడ్ విలువను కూడా కలిగి ఉంటుంది.
 లేకపోతే, ఫంక్షన్ సైట్‌ను బట్టి, అటువంటి కాల్ సైట్ లేదా ఫంక్షన్‌కు కట్టుబడి ఉండేది, మళ్ళీ ఓవర్‌లోడ్ రిజల్యూషన్ సమస్య.
 కాబట్టి, ఇప్పుడు సహజంగా మీరు ఫంక్షన్ ఓవర్‌లోడింగ్‌తో డిఫాల్ట్ పారామితులను ఉపయోగించవచ్చు.
 మునుపటి కొన్ని ఉదాహరణలు, నేను ఇప్పటికే ఉపయోగించాను.
 కానీ, ఇక్కడ నేను ఓవర్‌లోడ్ ఫంక్షన్ల మధ్య కొన్ని పారామితులను డిఫాల్ట్ చేయగలనని స్పష్టంగా చర్చించాలనుకుంటున్నాను.
 కానీ, మీరు కాల్ సైట్ నుండి డిఫాల్ట్ పారామితులతో మొత్తం ఫంక్షన్లను పరిష్కరించగలిగినంత వరకు, ఈ ఉపయోగాలన్నీ చక్కగా ఉంటాయి.
 కాబట్టి, ఇక్కడ మళ్ళీ ఒక ఉదాహరణ ఇక్కడ ఉంది.
 కాబట్టి, ఏరియా ఫంక్షన్, మాకు ఈ ఫంక్షన్ ఉంది, మేము ఇంతకు ముందు చూశాము.
 కాబట్టి, రెండింటికి ఇక్కడ రెండు పారామితులు ఉన్నాయి.
 అవి వివిధ రకాలు.
 మరియు, ఈ సందర్భంలో ఒక పరామితి అప్రమేయం.
 కాబట్టి, మేము ఈ కాల్ చేస్తే, ఈ ఫంక్షన్‌ను మాత్రమే పరామితితో పిలుస్తారు.
 ఇది ఇక్కడ పరిష్కరించబడుతుంది.
 మేము ఇలా చెబితే, z రకం రెట్టింపు మరియు y రకం పూర్ణాంకం.
 కాబట్టి, మీరు మొదట ఫంక్షన్‌కు కాల్ చేయలేరు.
 మేము రెండవ ఫంక్షన్ అని పిలుస్తాము ఎందుకంటే మొదటి పరామితి రెట్టింపుగా సరిపోతుంది.
 మరియు, Int (int) ను డబుల్ (డబుల్) గా మార్చడం కంటే int (int) ను డబుల్ (డబుల్) గా మార్చడం చాలా సులభం ఎందుకంటే మీరు డబుల్ (డబుల్) ను int (int) గా మార్చినట్లయితే, మీరు సమాచారం ఇవ్వండి.
 మీరు Int (int) ను డబుల్ (డబుల్) గా మార్చినట్లయితే, మీరు సమాచారాన్ని కోల్పోరు.
 కాబట్టి, ఇది ఒక ప్రచార వ్యూహం, ఇది బైండింగ్ ఉంటుందని మీకు తెలియజేస్తుంది, ఎందుకంటే ఇది ఇక్కడ బంధిస్తుంది మరియు ఇది ఇక్కడ బంధిస్తుంది.
 ఈ సమయంలో మేము చూపించాము.
 అందువల్ల, బాటమ్ లైన్ మేము వివరించడానికి ప్రయత్నిస్తున్నాము, డిఫాల్ట్ పరామితి మరియు ఫంక్షన్ ఓవర్లోడింగ్ మొత్తం విషయం పరిష్కరించబడే వరకు కలపవచ్చు. వెళ్ళవచ్చు.
 మరియు, వాస్తవానికి అది విఫలం కావచ్చు.
 ఉదాహరణకు, ఇది, ఏదో ఒక విధంగా మనం ఇంతకు ముందు చూశాము.
 కానీ మళ్ళీ, ఇక్కడ ఓవర్లోడ్ చేయబడిన మూడు ఫంక్షన్లు ఉన్నాయని ప్రత్యేకంగా గమనించండి; ఇది సున్నా పరామితి, ఇది ఒక పరామితి మరియు ఇది రెండు పారామితులు.
 కాబట్టి, ఈ మూడు కాల్స్ ఖచ్చితంగా పరిష్కరించగలవు.
 ఈ సాధ్యమయ్యే ఫంక్షన్ సెట్ యొక్క ప్రతి సందర్భంలో, ప్రతి ఒక్కటి ఒకే ఫంక్షన్ కలిగి ఉంటుంది; చెయ్యగలుగుట
 కానీ, మీరు ఈ ఓవర్‌లోడ్ ఫంక్షన్‌లో ఒకదానికి డిఫాల్ట్ పరామితిని నమోదు చేసినప్పుడు, మీకు సమస్య ఉంది ఎందుకంటే ఇప్పుడు ఈ ఫంక్షన్ (ఫంక్షన్) లో పరామితి (పరామితి) ఉంది లేదా శూన్య పరామితి (పరామితి) కావచ్చు.
 కాబట్టి, నేను సున్నా పరామితితో ఫంక్షన్ కాల్ వ్రాసినప్పుడు, మీరు ఈ రెండింటినీ మీ సాధ్యమయ్యే సెట్‌లో కలిగి ఉంటారు.
 మరియు, పరామితి లేనందున.
 మీరు ప్రయత్నించగల సరిపోలిక లేదు ఎందుకంటే పరామితి లేకపోతే, అసలు పరామితి రకం మరియు అధికారిక పరామితి రకం మధ్య మీరు ఏ విధమైన సరిపోలికను చూడబోతున్నారు.
 అందువల్ల, కంపైలర్ పరిష్కరించదు.
 మరియు, ఇది మళ్ళీ ఒక సాధారణ కంపైలర్ నుండి.
 ఇది మీకు అందుతున్న దోష సందేశం.
 మరియు, కంపైలర్ ఏమి చెబుతుందో చూడండి; ఓవర్‌లోడ్ అనేది ఒక ఫంక్షన్‌కు మసక కాల్.
 మరియు, ఇది ఈ రెండు ఫంక్షన్ల మధ్య పరిష్కరించలేమని చెప్పింది.
 అందువల్ల, మీరు ఓవర్‌లోడ్‌తో డిఫాల్ట్ పారామితులను ఉపయోగించినప్పుడు, మీరు ఓవర్‌లోడింగ్‌ను చూడలేరని గుర్తుంచుకోవాలి లేదా డిఫాల్ట్ పరామితిని చూడలేరు.
 వేర్వేరు ఓవర్‌లోడ్‌లకు కారణమయ్యే డిఫాల్ట్ పారామితులను మీరు చూడాలి మరియు అవి వేర్వేరు ఓవర్‌లోడ్‌లు అయినా, మేము వివరించే యంత్రాంగం యొక్క ఫ్రేమ్‌వర్క్ ద్వారా వాటిని నిజంగా పరిష్కరించవచ్చు.
 కాబట్టి ఇది ఇది; ఇవి లక్షణాలు.
 కాబట్టి, చివరికి నేను ఈ మాడ్యూల్‌లో సి ++ భాష యొక్క ప్రధాన అంశాన్ని పరిష్కరించడానికి ప్రయత్నించానని, ఇది ఫంక్షన్ ఓవర్‌లోడింగ్ అని చెప్పాలనుకుంటున్నాను.
 మొదట, డిఫాల్ట్ పారామితుల యొక్క భావనను మేము పరిగణనలోకి తీసుకున్నాము, ఇది మేము తరువాత వివరించాము, ఇది ఓవర్లోడింగ్ ఫంక్షన్ యొక్క ప్రత్యేక సందర్భం.
 డిఫాల్ట్ పారామితులు వాటి డిఫాల్ట్ విలువలను అందించడానికి మరియు ఫంక్షన్ లైబ్రరీలను ఉపయోగించడాన్ని సులభతరం చేయడానికి పెద్ద సంఖ్యలో పారామితులతో ఫంక్షన్లను వ్రాయడం చాలా సులభం చేస్తాయి.
 మరియు, ఫంక్షన్ ఓవర్‌లోడింగ్ అనేది మరొక పారామితి రకాలు భిన్నంగా ఉన్నంత వరకు ఒకే ఫంక్షన్ పేరుతో బహుళ ఫంక్షన్లను వ్రాయడానికి అనుమతించే మరొక లక్షణం.
 అందువల్ల, ఈ విషయంలో మేము వివిధ ప్రత్యేకతలను పరిశీలించాము.
 మరియు, మేము ప్రాథమిక స్టాటిక్ పాలిమార్ఫిజం గురించి మాట్లాడాము.
 మరియు ముఖ్యంగా, మేము అర్థం చేసుకున్న యంత్రాంగాన్ని కూడా చర్చించాము; ఓవర్లోడ్ కోసం వివిధ విధులను పరిష్కరించగల యంత్రాంగం యొక్క చట్రాన్ని మేము చర్చించాము.
 దీనితో, మేము ఈ మాడ్యూల్‌ను ముగించాము.
 మరియు, తరువాతి వాటిలో మేము అదే భావనను కొనసాగిస్తాము.
 మరియు, ఆపరేటర్ల విషయంలో C ++ లో కూడా ఇలాంటి ఓవర్‌లోడింగ్ భావనను అమలు చేయవచ్చని చూడండి, దీనిని ఆపరేటర్ ఓవర్‌లోడింగ్ అని పిలుస్తారు.