or que o protótipo é necessário mesmo sem nenhuma declaração de class
Se eu fizer: Ex1:
#include <iostream>
int main()
{
//try to call doSomething function
doSomething();
}
void doSomething()
{
std::cout << "Call me now!" << std::endl;
}
Eu recebo erro de compilação! Porque a compilação não sabe o que é "fazer algo".
Mas se eu mudar a posição de doSomething para ficar em primeiro lugar, o programa será compilado com êxito. Ex2:
#include <iostream>
void doSomething()
{
std::cout << "Call me now!" << std::endl;
}
int main()
{
//try to call doSomething function
doSomething();
}
Posso declarar que o protótipo é assim: Ex3:
#include <iostream>
void doSomething(void);
int main()
{
//try to call doSomething function
doSomething();
}
void doSomething()
{
std::cout << "Call me now!" << std::endl;
}
Mas por que o primeiro exemplo não funciona? Por que eu tenho que declarar um protótipo ou chamar funções primeiro e, finalmente, funções principais?
Obrigado