2014-10-09 6 views
0

Я работаю с функциями в первый раз, и мне любопытно, почему мы используем прототипы функций. Почему мы их используем? Нужно ли их использовать>Почему мы используем прототипы функций?

+1

В C++ нет «прототипов функций». Это концепция C. C странно. –

+1

@KerrekSB Объявление функций на C++ может быть описано как прототипы. –

+0

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

ответ

2

Существует разница между абсолютной потребностью и практической потребностью. Технически нам не нужны петлевые конструкции языка for, do и while, они совершенно лишние. Практически все по-другому, вы не хотели бы сводиться к использованию goto и longjmp.

Технически propotypes необходимы только для рекурсивных функций и для использования указателей функций.

На практике они вам нужны, чтобы разделить больший исходный код на управляемые куски, модули и как более абстрактный вид вещей.


Один из альтернативных вариантов функционирования прототипов как абстрактное представление определения класса, может быть что-то вроде Eiffel's short tool, создавая абстрактное представление автоматически из полного исходного кода. Одним из вариантов рекурсивного набора функций является их вложение, определение функций внутри функций. В C++ это легко, через локальные классы в C++ 03 и теперь через lambdas в C++ 11, но не в C.

+0

Извините за отправку этого ответа изначально без упоминания указателей на функции. Не знаю, почему это не появилось у меня в голове. Во всяком случае, теперь исправлено, видимо, прежде чем кто-нибудь заметил! :-) –

Смежные вопросы