Вызов функций внутри другой функции

0

Я пишу программу. И в основной функции "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;
}
  • 0
    Вам нужно определить Y перед X, чтобы X знал об этом, когда он его использует. Вам также необходимо использовать "namespace std;"
  • 1
    Вам нужно снова прочитать книгу по C ++.
Показать ещё 3 комментария
Теги:

4 ответа

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);). Вы пишете тип только при объявлении или определении функции.

  • 0
    Потрясающие! Полезно знать, что раньше мы писали «void» или «int», прежде чем вызывали функцию много.
  • 0
    Это, вероятно, вызвало некоторые проблемы (компилятор может отказаться от компиляции такого кода, так как он будет многократно использовать имя функции, которому предшествует его тип, в качестве нескольких определений одной и той же функции.) Если вы нашли этот ответ полезным, вы можете пометить его как принято.
Показать ещё 2 комментария
3

Вы должны объявить Y() перед его использованием:

void Y();

int X()
{Y();}
1

Когда компилятор достигает:

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 отлично.

И вот рабочий пример.

  • 0
    Огромное спасибо! Действительно помог мне!
0

Вам нужно объявить функцию Y до того, как функция X использует.

Напишите эту строку до определения X:

void Y();

Ещё вопросы

Сообщество Overcoder
Наверх
Меню