05.09.2016 Views

Стефан Р. - С++ Для чайников

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Такие аналогии между компьютерным и реальным миром не должны вас удивлять,<br />

так как компьютерный мир создан людьми.<br />

Типичное приложение может выглядеть следующим образом:<br />

int intVariablel, intVariable2;<br />

double doubleVariable;<br />

//функции различаются по типу передаваемых аргументов<br />

someFunction();<br />

//вызов someFunction(void)<br />

soraeFunction(intVariablel); //вызов someFunction{int)<br />

someFunction{doubleVariable); //вызов someFunction(double)<br />

someFunction(intVariablel, intVariable2);<br />

//вызов someFunction(int, int)<br />

// с константами функции работают аналогично<br />

someFunction(1);<br />

// вызов someFunctionfint)<br />

someFunction(1.0);<br />

// вызов someFunction(double)<br />

someFunction(1, 2);<br />

// вызов someFunction(int, int)<br />

В каждом случае типы аргументов соответствуют тем, которые значатся в полном<br />

имени каждой функции.<br />

Тип возвращаемого значения в полное имя функции (называемое также<br />

ее сигнатурой) не входит. Следующие две функции имеют одинаковые<br />

имена (сигнатуры) и поэтому не могут использоваться в одной<br />

программе:<br />

int someFunction(int n);<br />

//полным именем этой функайл является someFunction(int)<br />

double someFunction(int n); //имеет то же полное имя<br />

Следующий код вполне допустим:<br />

int someFunction(int n);<br />

double d = someFunction(10) ,•<br />

//преобразуем тип полученного значения<br />

В этом фрагменте возвращаемые функцией значения типа int<br />

в double. Но следующий код некорректен:<br />

int someFunction(int n);<br />

double someFunction(int n);<br />

double d = someFunction(10);<br />

//В этом случае мы преобразуем тип полученного<br />

//целочисленного значения или исполь зуем вторую функцию?<br />

преобразуются<br />

В этом случае C++ не поймет, какое значение он должен использовать — возвращаемое<br />

double-функцией или ее целочисленным вариантом.<br />

Определение Hfwtfiotnunotf фцшщий<br />

Как уже отмечалось, любой фрагмент кода программист может оформить как<br />

функцию, присвоив ей полное имя, таким образом объявляя ее для дальнейшего использования.<br />

Функции sumSequence () и square О, с которыми вы встречались и этой главе,<br />

были определены до того, как вызывались. Но это не означает, что нужно всегда придерживаться<br />

именно такого порядка. Функция может быть определена в любой части<br />

модуля (модуль — это другое название исходного файла C++).<br />

74 Часть //. Становимся программистами

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!