ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В C++ (4-Е ИЗДАНИЕ) (часть 5) онлайн

Отсутствие объявления

Вторым способом вставить свою функцию в программу является ее определение, помещенное ранее первого ее вызова. В этом случае прототип функции не ис- пользуется. Мы можем переработать программу TABLE таким образом, что опре- деление функции starline() будет располагаться до первого ее вызова. Получен- ную программу назовем TABLE2.

// tablе2.cpp

// определение функции без предварительного использования // прототипа #include  <iostream> using namespace std; //-------------------------------------------------------- // определение функции starline()

void starline() {

 for (int j=0;j<45 ;j++)  cout << '*';  cout << endl;

}

//

int main()            // функция main()

{

starline();            // вызов функции

cout << "Тип данных Диапазон" << endl; starline();            // вызов функции

cout << "char    -128...127" << endl

<< "short            -32.768...32.767" << endl

<< "int  Системно-зависимый" << endl

<<"long -2.147.483.648. .2.147.483.647" << endl; starline();            // вызов функции

return 0;

}

 

Такой подход более удобен для применения в коротких программах, по- скольку не требует указания прототипа функции. Однако вместе с этим теряет- ся и гибкость работы с функциями. Если число используемых функций велико, то программист будет вынужден следить за тем, чтобы тело каждой из функций располагалось раньше, чем любой ее вызов из других функций. Иногда эта за- дача бывает практически невыполнимой. Кроме того, некоторые программисты предпочитают располагать функцию main() первой в листинге, поскольку она всегда выполняется первой. Обычно мы будем оформлять программу именно таким образом: использовать прототипы функций и начинать листинг с функ- ции main().

 

8