Предположим, вы объявили функцию:
int Random();
И используйте ее:
int main()
{
int n;
n = Random();
}
Но реализуйте функцию Random после main
. Или предположим, что функция Random
определена в некотором заголовке. Вам нужно указать компилятору, что Random
- это функция, реализованная в каком-то другом исходном файле или в некоторой библиотеке.
Поэтому выражение, подобное:
T foo();
, всегда означает инструкцию для компилятора, что есть функция с именем foo
, которая возвращает T
. Он не может быть объектом типа T
.