Ik krijg de volgende compilatiefout met g++:
l1.cpp: In function 'int main()':
l1.cpp:5:15: error: 'HelloWorld' was not declared in this scope
Antwoord 1, autoriteit 100%
U moet de functie declareren of definiëren voordat u deze kunt gebruiken. Anders weet het niet dat HelloWorld()
bestaat als een functie.
Voeg dit toe voor je hoofdfunctie:
void HelloWorld();
U kunt ook de definitie van HelloWorld()
vóór uw main()
plaatsen:
#include <iostream>
using namespace std;
void HelloWorld()
{
cout << "Hello, World" << endl;
}
int main()
{
HelloWorld();
return 0;
}
Antwoord 2, autoriteit 22%
U moet de functie declareren voordat u deze kunt gebruiken:
#include <iostream>
using namespace std;
void HelloWorld();
int main()
{
HelloWorld();
return 0;
}
void HelloWorld()
{
cout << "Hello, World" << endl;
}
of u kunt de definitie van HelloWorld()
vóór main()
verplaatsen
Antwoord 3, autoriteit 18%
Je moet declaratie HelloWorld()
doorsturen zodat main
weet wat het is. Vind ik leuk:
#include <iostream>
using namespace std;
void HelloWorld();
int main()
{
HelloWorld();
return 0;
}
void HelloWorld()
{
cout << "Hello, World" << endl;
}
Antwoord 4, autoriteit 11%
Je moet een prototype van de functie hebben vóór de aanroep of de hele functie ervoor.
Dus de eerste is:
void HelloWorld();
int main() {
HelloWorld();
return 0;
}
void HelloWorld() {
cout << "Hello, World" << endl;
}
En de tweede manier is:
void HelloWorld() {
cout << "Hello, World" << endl;
}
int main() {
HelloWorld();
return 0;
}
Antwoord 5, autoriteit 11%
Er is nog een mogelijkheid om de een of andere reden die niemand heeft genoemd, namelijk het gebruik van externe declaratie:
#include <iostream>
using namespace std;
int main()
{
extern void HelloWorld();
HelloWorld();
return 0;
}
void HelloWorld()
{
cout << "Hello, World" << endl;
}
Het heeft de voorkeur wanneer u de naam van de functie niet wilt introduceren in het bereik van de naamruimte.
Antwoord 6, autoriteit 5%
Al deze antwoorden zijn correct, maar vreemd genoeg zou dit hebben gewerkt:
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(); }
Antwoord 7, autoriteit 4%
Je moet de functie voor de hoofdfunctie plaatsen.
Antwoord 8, autoriteit 3%
in C++ moet u de functies definiëren of op zijn minst declareren voordat u ze aanroept.
Wat je tot nu toe probeert te doen is ongeveer als volgt:
int main()
{
cout << b;
int b = 10;
}
Dus je kunt het ook zo proberen:
#include <iostream>
using namespace std;
void HelloWorld();
int main()
{
HelloWorld();
return 0;
}
void HelloWorld()
{
cout << "Hello, World" << endl;
}
Het is een goede gewoonte in C++ om alle andere functies vóór de hoofdfunctie te definiëren.
Antwoord 9, autoriteit 2%
Herschik HelloWorld()
zodat het voor main()
verschijnt:
#include <iostream>
using namespace std;
void HelloWorld()
{
cout << "Hello, World" << endl;
}
int main()
{
HelloWorld();
return 0;
}
Antwoord 10
Als je definieert dat je onder je hoofdfunctie functioneert, moet je dit eerst hierboven aangeven.
#include<iostream>
using namespace std;
void HelloWorld();
int main()
{
HelloWorld();
return 0;
}
void HelloWorld()
{
cout << "Hello, World" << endl;
}