首页 > 解决方案 > 调用 change_global() 函数后在 main() 中接收错误值

问题描述

这段代码和我正在使用的书中写的完全一样,但是书中的例子表明 main() 中的第三个 cout 实例应该提供整数 -10。相反,它提供了 10。为什么我的程序没有在 change_global() 函数中提供给“glob”的实际值?我知道这本书已经过时了,它是《Beginning C++ through Game Programming》的第 4 版。

int glob = 10; // global variable

void access_global();
void hide_global();
void change_global();

int main()
{
    cout << "In main() glob is: " << glob << "\n\n";
    access_global();

    hide_global();
    cout << "In main() glob is: " << glob << "\n\n";

    change_global();
    cout << "In main() glob is: " << glob << "\n\n";
    
    return 0;
}

void access_global()
{
    cout << "In access_global() glob is: " << glob << "\n\n";
}

void hide_global()
{
    int glob = 0;
    cout << "In hide_global() glob is: " << glob << "\n\n";
}

void change_global()
{
    int glob = -10;
    cout << "In change_global() glob is: " << glob << "\n\n";
}

标签: c++functionglobal-variables

解决方案


由退隐忍者发表

“我正在查看从这里下载的书的源代码:delmarlearning.com/companions/content/1305109910/datafiles/... 它与您键入的内容不一样,有一个名为 glob 的全局变量,它由 change_global 函数更改。从 int glob = -10 中删除 int;– 38 秒前退休的忍者”

这解决了我的问题,谢谢大家的帮助!


推荐阅读