Функция в C++

От Уикикниги

Функция на C++ е начин да се разделят блоковете код на части. Те предоставят на програмиста начин да раздели програмата си така, че да не трябва непрекъснато да се пише един и същи код, а просто да извика функцията. Чрез функциите кода се поддържа малък, чист и функционален. Изобщо функциите са хубаво нещо.

Всяка функция има три части — прототип (незадължителен, но препоръчителен), заглавна част и тяло.


Прототипът указва на компилатора, че определена функция съществува, но тялото на функцията е някъде другаде. Бихте могли и да не пишете прототип, като сложите заглавната част и тялото над всички извиквания на функцията, но в някои случаи това е невъзможно. Освен това, прототипа помага за изчистването и разбираемостта на кода, което е и главната цел на функциите. Прототипът има следния синтаксис:

<връщан тип> <име> ([тип] [параметър1], [тип] [параметър2],...);

Връщания тип може да бъде всеки тип променлива. Ако не искате функцията да връща тип, то в полето <връщан тип> трябва да напишете void. Името на функцията трябва да бъде съставено от символите A-Z, a-z, 0-9 и _ (долна черта), като не може да започва с цифра. Името трябва чисто и ясно да обяснява какво прави функцията, нито прекалено дълго, нито прекалено късо. Разбира се, вие избирате името, така че функцията ви може да се казва и F(). Последната част от прототипа е опис на параметрите. Това е списък със стойности, които се предават на функцията. Те могат да бъдат колкото поискате, или може изобщо функцията да не приема параметри. Ако не искате да предавате стойности на функцията, тогава оставете мястото между скобите празно или просто напишете в тях void. Ако функцията приема повече от един параметър, то трябва да ги разделите със запетаи. Ето няколко примера за прототипи:

double Square(double Number);
void ShowHelp(void);
double Area(double Width, double Height);

За да извикате някоя от тези функции, напишете например

Square(5);
ShowHelp();
Area(5,10);

Заглавната част се пише непосредствено преди тялото на функцията, за да укажете на компилатора коя функция ще описвате. Заглавната част има същия синтаксис като прототипа, но без ';' накрая. Например

double Area(double Width, double Height)

Тялото на функцията е този код, който всъщност се изпълнява; то е това, което прави функцията. Тялото започва с отворена фигурна скоба и завършва със затворена фигурна скоба ({ и }). Между тях трябва да напишете кода на функцията. Ето например реализацията на функцията Area:

double Area(double Width, double Height)
{
 double Ar=Width*Height;
 
 return Ar;
}

Чрез return указвате какво връща функцията, в случая лицето на правоъгълник с размери Width и Height. Тоест, ако напишете в main или в някоя друга функция следното:

cout<<Area(5,10)<<endl;

на екрана ще се изпише 50.