我的cpp文件中有一个全局字符串变量,我在头文件中使用它,它给了我C2065错误,当我上次有这个项目并创建它工作的头文件时,我做了没有更改任何文件,它给我全局变量的错误。当它尝试在cpp文件中声明的头文件中使用全局函数时,它也给了我C3861错误,当它也在之前工作时。在保存并关闭我的项目之前一切正常,但现在它根本不起作用。
cpp文件:
#include "stdafx.h"
#include "header.h"
#include <iostream>
#include <stdlib.h>
#include <string>
#include <windows.h>
using namespace std;
void story(); //--Function Declaration--
void tutorial();
void startGame();
void chooseClass();
void gameMenu();
void exitGame(); //--End Function Declaration--
string name;
string className;
头文件:
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
void chooseClass(){
className = "Warrior";
gameMenu();
}
头文件使用className字符串变量,并转到gameMenu函数。头文件中的chooseClass函数可以正常工作。
错误:
header.h(32): error C2065: 'className' : undeclared identifier
header.h(35): error C3861: 'gameMenu': identifier not found
答案 0 :(得分:0)
:
void chooseClass(const std::string& name);
这声明了函数。
然后在你的cpp文件中你将实现该功能。
// the global variable
std::string className;
//set the global variable to a value.
chooseClass(const std::string& name)
{
className = name;
}
然后在另一个.cpp文件中,您将使用set select类函数,如chooseClass("warrior");
然后作为旁注:您可能希望使用您的游戏类的枚举。