由于声明顺序,函数无法调用函数(c ++)

时间:2014-12-18 12:48:43

标签: c++ function

我搜索了主题,但我无法找到答案。

我有两个功能,例如

int login_call, main_call;

// main screen //
void mainscreen(int x)
{
loginscreen(login_call);
}


// login screen //
void loginscreen(int y)
{
mainscreen(main_call);
}

我的问题是我在登录屏幕的主屏幕和主屏幕中调出登录屏幕,但它不起作用,因为首先解析第一个功能时,会出现一个错误,即您的登录屏幕未被声明..并且当我切换上面这两个函数的位置时,错误来自未声明主屏幕。请建议我调用不依赖于声明顺序的函数的方法。

谢谢!

2 个答案:

答案 0 :(得分:3)

转发声明:

int login_call, main_call;

void loginscreen(int);

void mainscreen(int x)
{
    loginscreen(login_call);
}

void loginscreen(int y)
{
    mainscreen(main_call);
}

但是,你需要找到一种方法来结束这种无限递归。

答案 1 :(得分:0)

您可以在定义函数之前声明它:

int login_call, main_call;

//declare login screen function here so mainscreen() can call it
void loginscreen(int y);

// main screen //
void mainscreen(int x)
{
    loginscreen(login_call);
}


// login screen //
void loginscreen(int y)
{
    mainscreen(main_call);
}