Mille poolest erineb tühine funktsioon teisest funktsiooni tüübist C ++?
Vastus 1:
C või C ++ tähenduses „tühine funktsioon” tähendab lihtsalt funktsiooni, mis ei tagasta väärtust. Kui funktsioon eksisteerib ainult eesmärgiga midagi teha, mitte väärtuse tagastamiseks, siis muutke see kehtetuks, näiteks nii:
tühine PrintProduct (topelt a, topelt b) { printf ("% f", a * b); tagasi; // pange tähele, et tagastamisväärtust pole! }
Kuid kui soovite, et funktsioon tagastaks väärtuse, mis on selle sisendite funktsioon (st programmeerimisfunktsioon, mis toimib nagu matemaatikafunktsioon), peate kirjutama tühise funktsiooni:
topelt toode (topelt a, topelt b) { tagasi a * b; // pange tagasi väärtus! }
Vastus 2:
Rangelt võttes ei ole tühine funktsioon mitte „funktsioon”, vaid protseduur. Põhjuseks on see, et funktsioon tagastab väärtuse väärtuse ja muuseas on see erinevus ka tühise funktsiooni ja muude funktsioonide C & C ++ vahel, tühine funktsioon ei anna väärtust, kui muud funktsioonitüübid tagastavad määratud tüüpi objekti funktsiooni allkirja järgi.