我正在用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':找不到标识符”。
答案 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;
}