Fout: ongedefinieerde verwijzing naar Pow in C++

Fout Ongedefinieerde Verwijzing Naar Pow In C



Als je in programmeertalen werkt, moeten ze bibliotheken, functies, syntaxis, enz. bevatten. Er is dus een kans op fouten in onze programma's. Er zijn verschillende soorten fouten in het programmeren in C++. Hier zullen we de fout “ongedefinieerde verwijzing naar pow” in C++-programmering bespreken. Soms lijkt het alsof “pow niet binnen dit toepassingsgebied valt” en beide dezelfde betekenis hebben. Deze fout treedt op als we het headerbestand niet toevoegen aan onze C++-code of als we de code mogelijk niet correct compileren. We zullen ook de headerbestanden onderzoeken die helpen bij het verwijderen van die fout uit onze C++-code.

De ongedefinieerde verwijzing naar Pow in C++ oplossen

Bij het aanpakken van deze foutmelding voegen we eenvoudigweg het headerbestand toe aan onze code waarin de functie “pow()” wordt gedeclareerd. Hiermee wordt de fout uit onze code verwijderd. De headerbestanden die worden gebruikt voor de functie “pow()” zijn:

  • #include headerbestand
  • #include headerbestand
  • #include headerbestand

Hier zijn enkele codes die laten zien hoe deze fout optreedt en hoe u deze fout kunt aanpakken bij het programmeren in C++.







Voorbeeld 1:

In ons eerste voorbeeld voegen we het headerbestand “#include ” toe dat helpt bij het uitvoeren van de invoer- en uitvoertaken. Vervolgens moeten we na deze header “using namespace std” schrijven. Dit helpt bij het voorkomen van verwarring die zou kunnen ontstaan ​​doordat twee ID's dezelfde naam hebben.



Hierna roepen we hier de functie “int main()” aan, die wordt gebruikt om het begin van onze C++-code te definiëren. In deze functie gebruiken we nu de instructie “cout<<” die helpt bij het afdrukken van de gegeven informatie op het beeldscherm. De instructie “<< endl” wordt gebruikt om onze aanwijzer naar de nieuwe regel te verplaatsen.



Hierna wordt de functie “pow()” gebruikt, waarbij we twee parameters moeten doorgeven: grondtal en exponent. Hier voegen we ‘10, 4’ toe, waarbij ‘10’ het grondtal is en ‘4’ de exponent. Aan het einde van deze code voegen we nog een verklaring in, namelijk 'return 0'.





Code1:

#include
gebruik makend van naamruimte soa ;
int voornaamst ( ) {
uit << 'Hier wordt gebruik gemaakt van de powerfunctie ' ;
uit << eindl << eindl ;
uit << poe ( 10 , 4 ) ;
opbrengst 0 ;
}

Uitgang:
Nadat we de code hebben voltooid, moeten we deze compileren en uitvoeren. Wanneer we de vorige code compileren, verschijnt de foutmelding dat “pow niet in dit bereik is gedeclareerd”. Deze fout verschijnt omdat we het headerbestand waarin deze “pow()”-functie is gedeclareerd, niet hebben toegevoegd. Om deze fout op te lossen, moeten we een van de headerbestanden invoegen die we eerder noemden.



Nu moeten we deze fout oplossen om het resultaat te krijgen. Hiervoor hebben we een kleine wijziging in de code aangebracht. In dezelfde code voegen we het headerbestand '#include' toe na het headerbestand ''. Dit helpt de fout van de vorige code te verwijderen, omdat de functie “pow()” in dit headerbestand wordt gedeclareerd.

Bijgewerkte code 1:

#include
#include
gebruik makend van naamruimte soa ;
int voornaamst ( ) {
uit << 'Hier wordt gebruik gemaakt van de powerfunctie ' ;
uit << eindl << eindl ;
uit << poe ( 10 , 4 ) ;
opbrengst 0 ;
}

Uitvoer :
Deze bijgewerkte code is nu gecompileerd en wordt met succes uitgevoerd, en we krijgen de uitvoer van de code. De fout van de vorige code is nu verwijderd en na compilatie verschijnt het volgende resultaat:

Voorbeeld 2:

Hier hebben we nog een voorbeeld in C++. Na het toevoegen van de “ ” en de “std”, noemen we nu de functie “main()”. Binnen de main() drukken we eenvoudigweg een regel af met behulp van een “cout”-instructie. Vervolgens declareren we drie variabelen van het gegevenstype geheel getal met de naam 'num, exp en result'. Hierna initialiseren we “num” met “25” en “exp” met “2”. De variabele “result” wordt geïnitialiseerd met de functie “pow()”, waarbij “num” en “exp” worden doorgegeven als de twee parameters van deze functie. Hierna geven we dat vermogensresultaat weer met behulp van “cout”.

Code2:

#include
gebruik makend van naamruimte soa ;
int voornaamst ( )
{
uit << 'We vinden hier de macht van een getal in C++-programmering.' << eindl << eindl ;
int op een, exp , resultaat ;
op een = 25 ;
exp = 2 ;
resultaat = poe ( op een, exp ) ;
uit << 'De macht van het getal is = ' << resultaat ;
uit << eindl ;
opbrengst 0 ;
}

Uitvoer :
Deze nieuwe code toont nu hetzelfde foutbericht als het vorige voorbeeld. De reden is dat het ook hetzelfde is, omdat we het headerbestand waarmee we deze “pow()”-functie kunnen krijgen, niet hebben ingevoegd.

Nu voegen we het headerbestand toe aan onze code, het “cmath” headerbestand. Dit headerbestand wordt gebruikt in C++-programmering om de “pow()”-functie van onze code te verkrijgen. Na het toevoegen van het headerbestand “#include” krijgen we de vereiste uitvoer van onze code.

Voorbeeld 3:

Nu hebben we nog een voorbeeld. Hier declareren en initialiseren we, na de functie “main()”, het “base_num” van het datatype “long double” met “4.5”. Vervolgens declareren en initialiseren we ook het “expo_num” van het “integer” gegevenstype met “-2”. We declareren ook nog een variabele met de naam “result_1”, die van het datatype “long double” is.

Nu gebruiken we de functie “pow()” om de variabele “result_1” te initialiseren en “base_num” en “expo_num” door te geven aan deze functie. Hierna drukken we het resultaat af met behulp van het commando 'cout'. Nu declareren en initialiseren we nog twee variabelen, “f_baseNum” en “f_expoNum”, met het gegevenstype “float”. We initialiseren ze met respectievelijk “-9.2” en “5”. Vervolgens declareren we “resultaat_2” als een “dubbel” gegevenstype. We initialiseren nu de variabele “result_22” met behulp van de methode “pow()”, waarbij we “f_baseNum” en “f_expoNum” doorgeven. Vervolgens gebruiken we het commando “cout” om de uitkomst af te drukken.

Code 3:

#include
gebruik makend van naamruimte soa ;
int voornaamst ( ) {
lang dubbele basisnummer = 4.5 ;
int expo_num = - 2 ;
lang dubbele resultaat_1 ;
resultaat_1 = poe ( basis_num, expo_num ) ;
uit << 'Het base_num is hier in long double en expo_num is in integer type ' << eindl << eindl ;
uit << basisnummer << '^' << expo_num << ' = ' << resultaat_1 << eindl << eindl ;
vlot f_basisNum = - 9.2 , f_expoNum = 5 ;
dubbele resultaat_2 ;
resultaat_2 = poe ( f_basisNum, f_expoNum ) ;
uit << 'Het f_baseNum is hier in float en f_expoNum is in dubbel type ' << eindl << eindl ;
uit << f_basisNum << '^' << f_expoNum << ' = ' << resultaat_2 ;
opbrengst 0 ;
}

Uitvoer :
Na het compileren van deze code krijgen we een foutmelding die zegt dat de power-functie niet in dit bereik is gedeclareerd. Het betekent dat we het headerbestand hebben gemist waarin deze functie is gedeclareerd.

De fout is nu opgelost met behulp van het headerbestand “”. Deze keer gebruiken we het headerbestand “#include ”, omdat dit headerbestand ook helpt bij het oplossen van die fout.

Na het plaatsen hiervan wordt de code succesvol uitgevoerd en krijgen we de uitvoer van onze code die hier ook wordt weergegeven.

We kunnen de uitvoer ook verkrijgen met behulp van een ander headerbestand, het headerbestand “ ”. Met behulp van dit headerbestand maken wij bij onze programmering gebruik van alle standaardbibliotheken.

Na het toevoegen van “ ” krijgen we de vereiste uitvoer omdat “bits/stdc++.h>” elke standaardbibliotheek bevat. De fout is nu dus verwijderd nadat deze bibliotheek aan onze code is toegevoegd, en het uitvoerresultaat wordt hier weergegeven.

Conclusie

In dit artikel wordt de fout “ongedefinieerde verwijzing naar pow” of “pow was niet gedeclareerd in dit bereik” in C++-programmering ook in detail besproken. We hebben ook de manieren of headerbestanden onderzocht die helpen bij het verwijderen van de fout voor een succesvolle codecompilatie. We demonstreerden de voorbeelden waarin we de foutmelding en het resultaat van de code lieten zien na het verwijderen van die foutmelding.