如何调用在以下调用位置定义的函数?

时间:2019-06-01 22:20:58

标签: c++ function

我正在用C ++制作无尽的基于文本的游戏,并且具有多个功能,它们需要能够彼此调用。我似乎无法做到这一点,因为功能需要在调用它们的地方进行定义,而我不能在彼此之上同时定义它们。如何使其能够调用在其下方定义的函数?

我尝试过将函数的定义移到另一个之上,但由于其中之一需要调用在其下定义的函数,因此无法正常工作。

#include <iostream>

void function_one()
{
    int user_selection = 0;
    std::cout << "Enter \"1\" to call function 2.\n";

    switch (user_selection) {
        case 1:
            function_two();
            break;
    }

}

void function_two()
{

    int user_selection = 0;
    std::cout << "Enter \"1\" to call function 1.\n";

    switch (user_selection) {
        case 1:
            function_one();
            break;
    }

}

int main()
{
    function_one();
    return 0;
}

我正在使用MS Visual Studio 2019,得到的错误是“ C3861'function_one':找不到标识符”。

2 个答案:

答案 0 :(得分:2)

在顶部简单地声明函数,然后可以在以后定义它们:

#include <iostream>

void function_one();
void function_two();

int main()
{
    function_one();
    return 0;
}

void function_one()
{
    int user_selection = 0;
    std::cout << "Enter \"1\" to call function 2.\n";

    switch (user_selection) {
        case 1:
            function_two();
            break;
    }
}

void function_two()
{
    int user_selection = 0;
    std::cout << "Enter \"1\" to call function 1.\n";

    switch (user_selection) {
        case 1:
            function_one();
            break;
    }
}

答案 1 :(得分:0)

您可以将函数放在类中。然后创建该类的对象。并在该对象上调用您的函数。像这样:

#include <iostream>

class SomeName{public:

    void function_one()
    {
        int user_selection = 0;
        std::cout << "Enter \"1\" to call function 2.\n";

        switch (user_selection) {
            case 1:
                function_two();
                break;
        }

    }

    void function_two()
    {

        int user_selection = 0;
        std::cout << "Enter \"1\" to call function 1.\n";

        switch (user_selection) {
            case 1:
                function_one();
                break;
        }

    }

} someName;

int main()
{
    someName.function_one();
    return 0;
}