Kasutaja määratud funktsioonide tüübid C ++ keeles

Selles õpetuses saate teada erinevatest lähenemisviisidest, mida saate funktsioonide abil ühe probleemi lahendamiseks kasutada.

Argumentide paremaks mõistmiseks ja funktsioonides tagasipöördumiseks saab kasutaja määratletud funktsioonid kategoriseerida järgmiselt:

  • Funktsioon ilma argumendi ja tagastusväärtuseta
  • Funktsioon ilma argumendita, kuid tagastusväärtus
  • Funktsioon argumendiga, kuid tagastusväärtust pole
  • Funktsioon argumendi ja tagastatava väärtusega

Mõelgem olukorrale, kus peate kontrollima algarvu. See probleem lahendatakse allpool, tehes kasutaja määratletud funktsiooni 4 erineval viisil, nagu eespool mainitud.

Näide 1: ühtegi argumenti pole edastatud ja tagastusväärtust pole

 # include using namespace std; void prime(); int main() ( // No argument is passed to prime() prime(); return 0; ) // Return type of function is void because value is not returned. void prime() ( int num, i, flag = 0; cout <> num; for(i = 2; i <= num/2; ++i) ( if(num % i == 0) ( flag = 1; break; ) ) if (flag == 1) ( cout << num << " is not a prime number."; ) else ( cout << num << " is a prime number."; ) ) 

Ülaltoodud programmis prime()kutsutakse peamistest () argumentideta.

prime() võtab kasutajalt positiivse numbri ja kontrollib, kas number on algarv või mitte.

Kuna tagastuse tüüp prime()on void, ei tagastata funktsioonilt väärtust.

Näide 2: ühtegi argumenti pole edastatud, kuid tagastusväärtus

 #include using namespace std; int prime(); int main() ( int num, i, flag = 0; // No argument is passed to prime() num = prime(); for (i = 2; i <= num/2; ++i) ( if (num%i == 0) ( flag = 1; break; ) ) if (flag == 1) ( cout<  n; return n; ) 

Ülaltoodud programmis prime()kutsutakse funktsiooni algusest main()ilma argumentideta.

prime()võtab kasutajalt positiivse täisarvu. Kuna funktsiooni tagastustüüp on an int, tagastab see kasutaja sisestatud numbri tagasi helistamisfunktsioonile main().

Seejärel kontrollitakse peaosas (), kas number on algarv või mitte, ja printitakse ekraanile.

Näide 3: argumendid on edastatud, kuid tagastusväärtust pole

 #include using namespace std; void prime(int n); int main() ( int num; cout <> num; // Argument num is passed to the function prime() prime(num); return 0; ) // There is no return value to calling function. Hence, return type of function is void. */ void prime(int n) ( int i, flag = 0; for (i = 2; i <= n/2; ++i) ( if (n%i == 0) ( flag = 1; break; ) ) if (flag == 1) ( cout << n << " is not a prime number."; ) else ( cout << n << " is a prime number."; ) )

Ülaltoodud programmis küsitakse kasutajalt kõigepealt positiivset arvu, mis on salvestatud muutujasse num.

Seejärel edastatakse arv prime()funktsioonile, kus kontrollitakse ja prinditakse, olenemata sellest, kas number on algarv või mitte.

Kuna tagastuse tüüp prime()on a void, ei tagastata funktsioonilt väärtust.

Näide 4: esitatud argumendid ja tagastusväärtus.

 #include using namespace std; int prime(int n); int main() ( int num, flag = 0; cout <> num; // Argument num is passed to check() function flag = prime(num); if(flag == 1) cout << num << " is not a prime number."; else cout<< num << " is a prime number."; return 0; ) /* This function returns integer value. */ int prime(int n) ( int i; for(i = 2; i <= n/2; ++i) ( if(n % i == 0) return 1; ) return 0; ) 

Ülaltoodud programmis küsitakse kasutajalt positiivset täisarvu ja salvestatakse muutujasse num.

Seejärel numedastatakse funktsioonile, prime()kus kontrollitakse, kas arv on algarv või mitte.

Kuna tüübi tagastamise prime()on int1 või 0 tagastatakse main()helistamine funktsiooni. Kui number on algarv, tagastatakse 1. Kui ei, tagastatakse 0.

Tagasi main()funktsiooni, andis 1 või 0 on salvestatud muutuja flag ja vastava trükitud tekst ekraanile.

Milline meetod on parem?

Kõik neli ülaltoodud programmi annavad sama väljundi ja kõik on tehniliselt korrektsed programmid.

Millist meetodit valida, pole kindlat reeglit.

Konkreetne meetod valitakse sõltuvalt olukorrast ja sellest, kuidas soovite probleemi lahendada.

Huvitavad Artiklid...