#include <iostream>
using namespace std;
int main()
{
HelloWorld();
return 0;
}
void HelloWorld()
{
cout << "Hello, World" << endl;
}
J'obtiens l'erreur de compilation suivante avec g ++:
l1.cpp: In function 'int main()':
l1.cpp:5:15: error: 'HelloWorld' was not declared in this scope
Vous devez déclarer ou définir la fonction avant de pouvoir l'utiliser. Sinon, il ne sait pas que HelloWorld()
existe en tant que fonction.
Ajoutez ceci avant votre fonction principale:
void HelloWorld();
Vous pouvez également déplacer la définition de HelloWorld()
avant votre main()
:
#include <iostream>
using namespace std;
void HelloWorld()
{
cout << "Hello, World" << endl;
}
int main()
{
HelloWorld();
return 0;
}
Vous devez déclarer la fonction avant de pouvoir l'utiliser:
#include <iostream>
using namespace std;
void HelloWorld();
int main()
{
HelloWorld();
return 0;
}
void HelloWorld()
{
cout << "Hello, World" << endl;
}
ou vous pouvez déplacer la définition de HelloWorld()
avant main()
Vous devez transmettre déclarer HelloWorld()
pour que main
sache de quoi il s'agit. Ainsi:
#include <iostream>
using namespace std;
void HelloWorld();
int main()
{
HelloWorld();
return 0;
}
void HelloWorld()
{
cout << "Hello, World" << endl;
}
Vous devez avoir soit un prototype de la fonction avant l'invocation, soit la fonction entière avant.
Donc, le premier est:
void HelloWorld();
int main() {
HelloWorld();
return 0;
}
void HelloWorld() {
cout << "Hello, World" << endl;
}
Et la deuxième façon est:
void HelloWorld() {
cout << "Hello, World" << endl;
}
int main() {
HelloWorld();
return 0;
}
Il existe une autre possibilité pour une raison que personne n'a mentionnée, à savoir l'utilisation de la déclaration externe:
#include <iostream>
using namespace std;
int main()
{
extern void HelloWorld();
HelloWorld();
return 0;
}
void HelloWorld()
{
cout << "Hello, World" << endl;
}
Il est préférable de ne pas introduire le nom de la fonction dans la portée de l'espace de noms.
Toutes ces réponses sont correctes, mais curieusement, cela aurait fonctionné:
struct Hello {
static int main() { World(); return 0; } /* note: World() not declared yet */
static void World() { std::cout<<"Hello World"; }
};
int main() { return Hello::main(); }
Vous devez mettre la fonction avant la fonction principale.
en C++, vous devez définir ou au moins déclarer les fonctions avant de les appeler.
Ce que vous essayez de faire jusqu'à présent, c'est quelque chose comme ceci:
int main()
{
cout << b;
int b = 10;
}
Vous pouvez donc essayer comme ceci:
#include <iostream>
using namespace std;
void HelloWorld();
int main()
{
HelloWorld();
return 0;
}
void HelloWorld()
{
cout << "Hello, World" << endl;
}
C'est une bonne pratique en C++ de définir toutes les autres fonctions avant la fonction principale.
Réorganisez HelloWorld()
pour qu'il apparaisse avant main()
:
#include <iostream>
using namespace std;
void HelloWorld()
{
cout << "Hello, World" << endl;
}
int main()
{
HelloWorld();
return 0;
}