Löser den odefinierade referensen till Pow i C++
När vi tacklar det här felmeddelandet lägger vi helt enkelt till rubrikfilen i vår kod där funktionen 'pow()' deklareras. Detta tar bort felet från vår kod. Rubrikfilerna som används för funktionen 'pow()' är:
- #include
rubrikfil - #include
huvudfil - #include
rubrikfil
Här är några koder som visar hur det här felet uppstår och hur man åtgärdar detta fel i C++-programmering.
Exempel 1:
I vårt första exempel lägger vi till '#include
Efter detta anropar vi funktionen 'int main()' här som används för att definiera starten på vår C++-kod. Nu, i den här funktionen, använder vi 'cout<<'-satsen som hjälper till att skriva ut den givna informationen på skärmen. '<< endl'-satsen används för att flytta vår pekare till den nya raden.
Efter detta används funktionen “pow()” där vi måste skicka två parametrar: bas och exponent. Här lägger vi till '10, 4', där '10' är bastalet och '4' är exponenten. I slutet av denna kod infogar vi ytterligare ett påstående som är 'retur 0'.
Kod 1:
#includeanvänder sig av namnutrymme std ;
int huvud ( ) {
cout << 'Strömfunktionen används här' ;
cout << endl << endl ;
cout << pow ( 10 , 4 ) ;
lämna tillbaka 0 ;
}
Produktion:
Efter att ha slutfört koden måste vi kompilera och köra den. När vi kompilerar den föregående koden visas felmeddelandet som säger 'pow deklarerades inte i detta omfång'. Det här felet visas eftersom vi inte har lagt till rubrikfilen där denna 'pow()'-funktion är deklarerad. För att lösa detta fel måste vi infoga någon av rubrikfilerna som vi nämnde tidigare.
Nu måste vi lösa detta fel för att få resultatet. För detta gjorde vi lite ändringar i koden. I samma kod lägger vi till '#include'-huvudfilen efter ''-huvudfilen. Detta hjälper till att ta bort felet i den tidigare koden eftersom 'pow()'-funktionen deklareras i den här rubrikfilen.
Uppdaterad kod 1:
#include#inkludera
använder sig av namnutrymme std ;
int huvud ( ) {
cout << 'Strömfunktionen används här' ;
cout << endl << endl ;
cout << pow ( 10 , 4 ) ;
lämna tillbaka 0 ;
}
Produktion :
Denna uppdaterade kod är nu kompilerad och körs framgångsrikt, och vi får utdata från koden. Felet i den tidigare koden är nu borttaget och följande resultat visas efter kompilering:
Exempel 2:
Här har vi ett annat exempel i C++. Efter att ha lagt till '
Kod 2:
#includeanvänder sig av namnutrymme std ;
int huvud ( )
{
cout << 'Vi hittar kraften i ett nummer här i C++-programmering.' << endl << endl ;
int på ett, exp , resultat ;
på ett = 25 ;
exp = 2 ;
resultat = pow ( på ett, exp ) ;
cout << 'Siffrans kraft är = ' << resultat ;
cout << endl ;
lämna tillbaka 0 ;
}
Produktion :
Nu visar den här nya koden samma felmeddelande som föregående exempel. Anledningen är att det också är samma eftersom vi inte infogade rubrikfilen som vi kan få denna 'pow()'-funktion med.
Nu lägger vi till rubrikfilen till vår kod som är 'cmath'-huvudfilen. Denna rubrikfil används i C++-programmering för att få vår kods 'pow()'-funktion. Efter att ha lagt till rubrikfilen '#include' får vi den nödvändiga utmatningen av vår kod.
Exempel 3:
Nu har vi ytterligare ett exempel. Här, efter funktionen 'main()', deklarerar och initierar vi 'base_num' för 'long double' datatyp med '4.5'. Sedan deklarerar och initierar vi också 'expo_num' för datatypen 'heltal' med '-2'. Vi deklarerar också ytterligare en variabel av namnet 'result_1' som är av 'long double' datatyp.
Nu använder vi 'pow()'-funktionen för att initiera variabeln 'result_1' och skicka 'base_num' och 'expo_num' till denna funktion. Efter detta skriver vi ut resultatet med kommandot 'cout'. Nu deklarerar och initierar vi ytterligare två variabler, 'f_baseNum' och 'f_expoNum', med datatypen 'float'. Vi initialiserar dem med '-9.2' respektive '5'. Sedan deklarerar vi 'result_2' som en 'dubbel' datatyp. Vi initierar nu variabeln 'result_22' med metoden 'pow()' och skickar in 'f_baseNum' och 'f_expoNum'. Därefter använder vi kommandot 'cout' för att skriva ut resultatet.
Kod 3:
#includeanvänder sig av namnutrymme std ;
int huvud ( ) {
lång dubbel base_num = 4.5 ;
int expo_num = - 2 ;
lång dubbel resultat_1 ;
resultat_1 = pow ( base_num, expo_num ) ;
cout << 'Base_num här är i lång dubbel och expo_num är i heltalstyp' << endl << endl ;
cout << base_num << '^' << expo_num << ' = ' << resultat_1 << endl << endl ;
flyta f_basNum = - 9.2 , f_expoNum = 5 ;
dubbel resultat_2 ;
resultat_2 = pow ( f_basNum, f_expoNum ) ;
cout << 'F_baseNum här är flytande och f_expoNum är i dubbel typ' << endl << endl ;
cout << f_basNum << '^' << f_expoNum << ' = ' << resultat_2 ;
lämna tillbaka 0 ;
}
Produktion :
Efter att ha kompilerat den här koden får vi ett felmeddelande som säger att strömfunktionen inte deklarerades i detta omfång. Det betyder att vi missade rubrikfilen där denna funktion är deklarerad.
Felet är nu löst med hjälp av rubrikfilen '
Efter att ha placerat denna, följs koden framgångsrikt och vi får utdata från vår kod som också visas här.
Vi kan också få utdata med en annan rubrikfil, rubrikfilen '
Efter att ha lagt till '
Slutsats
I den här artikeln diskuteras också felet 'odefinierad referens till pow' eller 'pow deklarerades inte i detta omfång' i C++-programmering i detalj. Vi undersökte också sätten eller rubrikfilerna som hjälper till att ta bort felet för framgångsrik kodkompilering. Vi visade exemplen där vi visade felmeddelandet och resultatet av koden efter att ha tagit bort det felmeddelandet.