Я пишу программу. И в основной функции "int main()" я вызываю функцию, называемую, скажем, "int X()". Внутри "int X()" Я хотел бы вызвать другую функцию "void Y()". Есть идеи, как это сделать? Я пробовал внутри функции X(), делая "Y();" и "void Y();" но ни в коем случае не преобладают. Какие-нибудь советы по работе с этим? если вообще возможно?
ех.
#include<iostream>
int X()
{
Y();
}
void Y()
{
std::cout << "Hello";
}
int main()
{
X();
system("pause");
return 0;
}
Вы должны определить или объявить свои функции перед их использованием. Например:
void Y(); //this is just a declaration, you need to implement this later in the code.
int X(){
//...
Y();
//...
return someIntValue; //you will get warned if function supposed to return something does not do it.
}
ИЛИ
void Y(){
//code that Y is supposed to do...
}
int X(){
//...
Y();
//...
}
Когда вы вызываете функцию, вы больше не пишете ее тип (для вызова functon Y вы пишете: Y(arguments);
а не void Y(arguments);
). Вы пишете тип только при объявлении или определении функции.
Вы должны объявить Y() перед его использованием:
void Y();
int X()
{Y();}
Когда компилятор достигает:
int X()
{
Y();
}
он не знает, что такое Y
Вам нужно объявить Y
до X
, инвертируя их объявления:
void Y()
{
std::cout << "Hello";
}
int X()
{
Y();
}
int main()
{
X();
system("pause");
return 0;
}
Вы также должны указать return
значение для X
, иначе появится предупреждение.
И, пожалуйста, не следуйте указаниям использования using namespace std;
, То, как вы пишете std::cout
отлично.
И вот рабочий пример.
Вам нужно объявить функцию Y
до того, как функция X
использует.
Напишите эту строку до определения X
:
void Y();