Статични функции в С и С++

8

Основи на програмирането

А. Петров

ОП – слайдове към лекция 12

Още за функциите в С и С++.

1. Статични функции.

Статични функции се дефинират чрез ключовата дума static. И за тях важи, че те са достъпни само в рамките на файла, в който са дефинирани, т.е. от дефини­цията до края на файла. Подобно на стат. външни променливи те не могат да бъдат като extern в други файлове и са недостъпни за ф-ии, де­финирани в други файлове. Може да има ф-ии и външни промен­ливи със същите имена в други файлове.

Възможно е и създаването на статични глобални променливи чрез ключова дума static при тяхното деклариране. Нейната област на действие, както и възмож­ността за нейната промяна се ограничават само в областта на файла, в който тя е декларирана. Прог­рами в други файлове няма да имат достъп до тази промен­лива и няма да могат да променят нейната стойност. За целта се създава малък файл, който съдържа само функцията, използваща статич­ната глобална променлива. Този файл се компилира отделно, след което може да се ра­боти със статичната глобална променлива без опасност от странични ефекти.

Чрез статични функции и статични външни променливи се реализира идеята за скри­ване на данните (date hiding) в мо­дулното програмиране. Ако, например, в даден файл се дефинират няколко статични функ­ции и външни променливи, то достъ­път до променливите ще става само чрез съответните статични функции. Така ще има модули със строго рег­ламентиран достъп до данните.

2. Функции с подразбиращи се аргументи.

В езика С++ има някои специфични особености на функциите, които не са реали­зирани в С. В С++ могат да се използват функции с подразбиращи се аргументи с зададени подразбиращи се стойности. Така може тези аргументи да бъдат пропуснати при извикването на ф-ята. За тази цел се извършва инициализи­ране на подразбиращите се параметри чрез знака за присво­яване, както в долния пример:

Пример 12.1

float func (int х, float у = 3.5, char *s = "string1" )

{

cout << "x=" << х << " y=" << у << " s=" << s << ' n';

}

В случая подразбиращи се аргументи са у и s на функцията func и техните под­раз­биращи се стойности са съответно 3.5 и "string1". Функцията func може да бъде извикана по три различни начина – с един, с два и с три аргу­мента:

func ( 3 );

func ( 3, 3.0 );

func ( 3, 4.0, "string2" );

Резултатите от тези три изпълнения на функцията func ще бъдат съответно:

х=3 у=2.3 s= string1

х=3 у=3.0 s= string1

х=3 у=4.0 s= string2

При ф-ии с подразбиращи се аргументи трябва да се има предвид две правила:

  1. Ако при извикването на функцията се пропусне някой от подразбиращите се ар­гу­менти в тялото и се използва неговата подразбираща се стойност. Ако, обаче, при извикването се въведе нова стойност на подразбиращ се аргу­мент, в функцията се използва въведената, а не подразбиращата се стойност;

  2. Ако един аргумент на дадена функция е подразбиращ се, то всички аргу­менти, които се намират след него в списъка също трябва да бъдат подразби­ращи се. Следователно дефиниция от вида:

int f ( int х, float у = 3.5, char *s )//ГРЕШКА – аргументът s не е подразбиращ!

{

.............


Други реферати:
Обща характеристика на българското стопанство през 1919-1929г
Обща характеристика на взаимоотношенията с клиенти
Обща теория на пазарното стопанство
Обща теория на статистиката-основни понятия
Обща характеристика и методологически основи на прогнозирането


Изтегли реферата



Обща характеристика и методологически основи на прогнозирането - Facebook Image
Сайтът се поддържа от DH Studio | pomagalo1.com © 2012 | Общи условия