ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В 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().
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
