我似乎无法在两个.cpp文件中获得保持一致的值

时间:2018-05-12 04:08:00

标签: c++

每当我运行代码时,它就会出现在第一个.cpp文件中,而忽略了另一个。

main.cpp中:

#include <iostream>
#include "variables.h"
#include "intro.cpp"

using namespace std;

float gold;

int main()
{
  float gold = 0;

  intro();

  cout<<gold;

  return 0;
}

intro.cpp:

#include "variables.h"

void intro()
{
  gold = 5.0;
}

头:

#ifndef VARIABLES_H_
#define VARIABLES_H_

extern float gold;

#endif

它总是将黄金输出为0而不是5.我做错了什么?

1 个答案:

答案 0 :(得分:2)

int main()
{
    float gold = 0;
    ...
    cout<<gold;
}

你声明了另一个变量gold,本地,并打印出来。

删除局部变量声明:

int main()
{
    ...
    cout<<gold;
}

或打印出全局变量:

int main()
{
    float gold = 0;
    ...
    cout << ::gold;
}

我建议你阅读Why should I not include cpp files and instead use a header?