C++లో, ఫంక్షన్ పాయింటర్లు ఫంక్షన్లను డేటాగా మార్చడానికి శక్తివంతమైన సాధనాన్ని అందిస్తాయి. ఎ ఫంక్షన్ పాయింటర్ ఫంక్షన్ యొక్క మెమరీ చిరునామాను కలిగి ఉండే వేరియబుల్. ఇది డేటా ఆబ్జెక్ట్ యొక్క చిరునామా కాకుండా ఫంక్షన్ యొక్క చిరునామాను సేవ్ చేస్తుంది తప్ప ఇది స్టాండర్డ్ పాయింటర్ వలె పనిచేస్తుంది. ఇది గుర్తుంచుకోవడం కీలకం ఫంక్షన్ పాయింటర్లు C++లో కేవలం మరొక విధమైన వేరియబుల్, మరియు అవి తప్పనిసరిగా ఇతర వేరియబుల్స్ మాదిరిగానే ప్రకటించబడాలి మరియు ప్రారంభించబడాలి.
ఫంక్షన్ పాయింటర్ను నిర్వచించడం
ప్రకటించాల్సిన సింటాక్స్ a ఫంక్షన్ పాయింటర్ క్రింది విధంగా ఉంది:
తిరిగి_రకం ( * func_ptr_పేరు ) ( పారామీటర్_జాబితా ) ;
ఇక్కడ, func_ptr_పేరు యొక్క పేరు ఫంక్షన్ పాయింటర్ , తిరిగి_రకం ఫంక్షన్ యొక్క రిటర్న్ రకం, మరియు పారామీటర్_జాబితా ఫంక్షన్ తీసుకునే పారామితుల జాబితా.
C++లో ఫంక్షన్ పాయింటర్ని ఉపయోగించడానికి ఇక్కడ కోడ్ ఉదాహరణ.
#include
#include
నేమ్స్పేస్ stdని ఉపయోగించడం;
శూన్య క్యూబ్ ( int x )
{
కోట్ << 'సంఖ్య యొక్క ఘనం' << x * x * x << endl;
}
పూర్ణాంక ప్రధాన ( )
{
శూన్యం ( * funPtr ) ( int ) ;
funPtr = & క్యూబ్;
funPtr ( 5 ) ;
తిరిగి 0 ;
}
పై కోడ్లో, ది ఫంక్షన్ పాయింటర్ శూన్యంగా ప్రకటించబడింది (*funPtr)(int) , మరియు ఇది క్యూబ్() ఫంక్షన్ యొక్క చిరునామాను నిల్వ చేయడం ద్వారా ప్రారంభించబడుతుంది funPtr , అని అర్థం funPtr ఫంక్షన్ను సూచిస్తుంది క్యూబ్ () . అందువలన, మేము funPtr (ని ఉపయోగించి క్యూబ్ ఫంక్షన్ని పిలుస్తాము. ఫంక్షన్ పాయింటర్ ) funPtr (5) కోడ్లో వలె.
అవుట్పుట్
ఎ ఫంక్షన్ పాయింటర్ , ఇతర పాయింటర్లకు విరుద్ధంగా, డేటా కంటే కోడ్ని సూచిస్తుంది. ఎ ఫంక్షన్ పాయింటర్ తరచుగా ఎక్జిక్యూటబుల్ కోడ్ యొక్క ప్రారంభాన్ని నిల్వ చేస్తుంది. ప్రామాణిక పాయింటర్ల వలె కాకుండా, మేము ఉపయోగించము ఫంక్షన్ పాయింటర్లు మెమరీని కేటాయించడానికి లేదా ఖాళీ చేయడానికి. మేము పైన ప్రోగ్రామ్లో చూసినట్లుగా, దాని స్థానాన్ని గుర్తించడానికి ఫంక్షన్ పేరును ఉపయోగించడం కూడా సాధ్యమే. సాధారణ పాయింటర్లకు వర్తించే అదే నియమాలు శ్రేణికి కూడా వర్తిస్తాయి ఫంక్షన్ పాయింటర్లు . స్విచ్ కేసుల స్థానంలో ఫంక్షన్ పాయింటర్ల వినియోగాన్ని ఉపయోగించవచ్చు. ఎ ఫంక్షన్ పాయింటర్ డేటా పాయింటర్ కెన్ లాగా ఆర్గ్యుమెంట్గా అందించబడుతుంది మరియు ఫంక్షన్ నుండి తిరిగి ఇవ్వబడుతుంది.
ఫంక్షన్ పాయింటర్ల ప్రయోజనాలు
యొక్క ప్రధాన ప్రయోజనాలు ఫంక్షన్ పాయింటర్లు క్రింద ఇవ్వబడ్డాయి.
1: కోడ్ యొక్క పునర్వినియోగం
ఉపయోగించడం యొక్క ముఖ్య ప్రయోజనాల్లో ఒకటి ఫంక్షన్ పాయింటర్లు అవి కోడ్లో పునర్వినియోగాన్ని అనుమతిస్తాయి. ప్రతి పరిస్థితికి ప్రత్యేకమైన ఫంక్షన్లను వ్రాయడానికి బదులుగా, మీరు నిర్వచించడం ద్వారా వివిధ రకాలైన ఇన్పుట్ డేటాతో వ్యవహరించేంత సాధారణమైన ఫంక్షన్లను రూపొందించవచ్చు. ఫంక్షన్ పాయింటర్ టైప్ చేయండి మరియు మీ కోడ్ అంతటా స్థిరంగా ఉపయోగించుకోండి. బదులుగా, మీరు చేయవలసిందల్లా హక్కును అందించడం ఫంక్షన్ పాయింటర్ రన్టైమ్లో లేదా కాన్ఫిగరేషన్ ఫైల్ ద్వారా, మరియు ఫంక్షన్ ప్రస్తుత ఉద్యోగం యొక్క డిమాండ్లకు సర్దుబాటు చేస్తుంది. ఇది అభివృద్ధి ప్రక్రియను వేగవంతం చేయడమే కాకుండా మీ కోడ్ యొక్క మాడ్యులారిటీ మరియు దీర్ఘకాలిక నిర్వహణను మెరుగుపరుస్తుంది.
2: డైనమిక్ రన్టైమ్ బిహేవియర్
డైనమిక్ రన్టైమ్ ప్రవర్తనను అమలు చేయగల సామర్థ్యం ఉపయోగించడం వల్ల మరొక ప్రయోజనం ఫంక్షన్ పాయింటర్లు . ఉదాహరణకు, మీరు నిర్దిష్ట గణనను అమలు చేసే ఫంక్షన్ని కలిగి ఉండవచ్చు, కానీ ఆ గణనను నిర్వహించడానికి ఉపయోగించే ఖచ్చితమైన అల్గారిథం వినియోగదారు ఇన్పుట్ లేదా సిస్టమ్ పరిస్థితులపై ఆధారపడి ఉంటుంది. నిల్వ చేయడం ద్వారా a ఫంక్షన్ పాయింటర్ ఇది సాధ్యమయ్యే ప్రతి అల్గారిథమ్కు అనుగుణంగా ఉంటుంది, if-else స్టేట్మెంట్లు లేదా ఇతర షరతులతో కూడిన తర్కాన్ని ఉపయోగించి మీరు రన్టైమ్లో తగినదాన్ని ఎంచుకోవచ్చు. ఇలా చేయడం ద్వారా, మీరు మొత్తం ప్రోగ్రామ్ను పునర్నిర్మించాల్సిన అవసరం లేకుండానే పరిస్థితులను మార్చడానికి ప్రతిస్పందించగల అత్యంత సౌకర్యవంతమైన కోడ్ను అభివృద్ధి చేయవచ్చు.
3: వశ్యత
C++లో, ఫంక్షన్ పాయింటర్లు అనువైన, సాధారణ కోడ్ని సృష్టించడానికి శక్తివంతమైన సాధనాన్ని అందిస్తాయి. ఫంక్షన్ పాయింటర్లు ఫంక్షన్ యొక్క మెమరీ స్థానం యొక్క చిరునామాను కలిగి ఉండే వేరియబుల్స్ తప్పనిసరిగా ఉంటాయి. అవి శ్రేణులు లేదా జాబితాల వంటి డేటా నిర్మాణాలలో నిల్వ చేయబడే ఫంక్షన్లను ప్రారంభిస్తాయి, ఇతర ఫంక్షన్లకు ఆర్గ్యుమెంట్లుగా అందించబడతాయి మరియు రన్టైమ్ పరిస్థితులు లేదా వినియోగదారు ఇన్పుట్ ఆధారంగా అమలు చేయడానికి సరైన ఫంక్షన్ను డైనమిక్గా ఎంచుకోవడానికి కూడా ఉపయోగిస్తారు.
ముగింపు
ఫంక్షన్ పాయింటర్లు C++లో డైనమిక్ రన్టైమ్ ప్రవర్తన మరియు కోడ్ పునర్వినియోగానికి మద్దతు ఇచ్చే ప్రభావవంతంగా ఉంటాయి. మీరు వేరియబుల్స్లో ఫంక్షన్ల చిరునామాలను నిల్వ చేయడం ద్వారా కాలక్రమేణా మారుతున్న అవసరాలకు సర్దుబాటు చేయగల అత్యంత సౌకర్యవంతమైన మరియు అనుకూల కోడ్ను వ్రాయవచ్చు. ఫంక్షన్ పాయింటర్లు ప్రతి ప్రొఫెషనల్ C++ కోడర్కి అవి అవసరం, అయినప్పటికీ వారు నేర్చుకోవడానికి కొంత పని అవసరం కావచ్చు.