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
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:
#includegebruik 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 “
Code2:
#includegebruik 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:
#includegebruik 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 “
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 “
Na het toevoegen van “
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.