Форум программистов, компьютерный форум CyberForum.ru

Объявление и определение функции - C++

Восстановить пароль Регистрация
 
Игорюня
 Аватар для Игорюня
20 / 16 / 7
Регистрация: 07.12.2013
Сообщений: 244
09.02.2014, 07:18     Объявление и определение функции #1
В учебнике такой код:
C++
1
2
3
4
5
6
7
8
9
10
11
void somefunction(int);
 
int main()
{
 //неважно
}
 
void somefunction(int a)
{
//неважно
}
Собсно,в чём смысл объявлять прототип функции? Ведь в объявлении содержится вся информация и тело функции.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.02.2014, 07:18     Объявление и определение функции
Посмотрите здесь:

Объявление функции C++
C++ объявление и определение функции класса
объявление функции C++
Чем отличается между собой объявление, инициализация и определение? C++
Объявление функции C++
C++ Объявление и определение классов
Объявление функции C++
C++ Объявление и определение шаблонного класса

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
school_bot
14 / 12 / 3
Регистрация: 23.12.2013
Сообщений: 84
09.02.2014, 07:30     Объявление и определение функции #2
можно реализацию писать после использования.
это важно, если у тебя есть 2 функции и каждая вызывает друг друга.
C++
1
2
3
4
5
6
7
8
void somefunction1(int a)
{
    somefunction2(1);
}
void somefunction2(int a)
{
    somefunction1(1);
}
Компилятор пишет: error C3861: somefunction2: идентификатор не найден
Но если:
C++
1
2
3
4
5
6
7
8
9
10
11
void somefunction2(int);
void somefunction1(int);
 
void somefunction1(int a)
{
    somefunction2(1);
}
void somefunction2(int a)
{
    somefunction1(1);
}
тут будет всё хорошо
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
09.02.2014, 11:18     Объявление и определение функции #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Игорюня Посмотреть сообщение
Собсно,в чём смысл объявлять прототип функции?
В данном случае, если прототип не объявлен до main(), а в main() делается вызов этой функции, то как компилятор узнает, что это за функция?
Можно обойтись без прототипа:
C++
1
2
3
4
5
6
7
8
9
10
void somefunction(int a)
{
//неважно
}
 
int main()
{
   somefunction(5);
//неважно
}
Yandex
Объявления
09.02.2014, 11:18     Объявление и определение функции
Ответ Создать тему
Опции темы

Текущее время: 16:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru