Форум: Форум C++Разное
Новые темы: 00
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Зачем нужны прототипы функций?
 
 автор: antf   (08.11.2009 в 22:33)   письмо автору
 
 

Зачем нужны прототипы функций? Только для того, чтобы функцию можно было использовать до ее объявления? Как в этом примере:


#include<iostream.h>

int f(int x);

int main(void)
{
  cout << f(5) << endl;


  int k;
  cin >> k;

  return 0;
}

int f(int x) { return x;}


Или тут глубже собака зарыта?

  Ответить  
 
 автор: cheops   (08.11.2009 в 22:43)   письмо автору
 
   для: antf   (08.11.2009 в 22:33)
 

Да, в том числе и поэтому. Однако, главное преимущество прототипов заключается в том, что вы можете сосредотачивать их в одном месте, скажем h-файле, при этом реализацию функций выносить в cpp-файл (в другой файл). Потом, откомпилировав cpp-файл в виде библиотеки вы можете распространять его совместно с h-файлом. В результате, реализация библиотеки скрыта от пользователя, а интерфейс доступен для изучения в h-файле. Это позволяет легко создавать коммерческие библиотеки, а также реализовывать принцип инкапсуляции (реализации скрытой от внешнего программиста). Собственно и сам C++ так реализован - вы включаете стандартную библиотеку iostream.h, а сам код библиотеки уже откомпилирован. Это не особенно принципиально для небольших проектов, но операционные системы и объемные программы могут компилироваться часами и днями - поэтому заранее скомилированные части программы очень важны и позволяют значительно сократить время компиляции программы.

PS Когда дойдете до классов оцените... В C++, благодаря прототипам, класс можно разбить на любое количество файлов, в отличие от PHP в котором каждый под каждый класс отводится лишь один файл, который зачастую достигает гиганских размеров и даже пользоваться становится очень трудно, так как просмотреть набор его методов достаточно затруднительно.

  Ответить  
 
 автор: antf   (08.11.2009 в 22:53)   письмо автору
 
   для: cheops   (08.11.2009 в 22:43)
 

>Однако, главное преимущество прототипов заключается в том, что вы можете сосредотачивать их в одном месте, скажем h-файле, при этом реализацию функций выносить в cpp-файл (в другой файл).

Хорошее преимущество :)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования