C++ C++;多个文件中的全局变量
我有一个类按钮,其中包括一个类按钮管理器,它管理按钮 然后我有两个函数来处理这些事情,一个类似于登录窗口,只有几个按钮,第二个是游戏菜单本身,里面也有按钮 然而,这两个窗口占用了相当多的行,所以我决定将其拆分为多个.cpp文件,在这里我只从main调用东西 问题是,我需要在.cpp和main.cpp中都包含button类,并且main和secondary cpp还包含一些C++ C++;多个文件中的全局变量,c++,visual-studio-2012,C++,Visual Studio 2012,我有一个类按钮,其中包括一个类按钮管理器,它管理按钮 然后我有两个函数来处理这些事情,一个类似于登录窗口,只有几个按钮,第二个是游戏菜单本身,里面也有按钮 然而,这两个窗口占用了相当多的行,所以我决定将其拆分为多个.cpp文件,在这里我只从main调用东西 问题是,我需要在.cpp和main.cpp中都包含button类,并且main和secondary cpp还包含一些dummy.h,其中包含呈现菜单的公共函数的声明 主要问题是ButtonManager有一个全局变量,编译时表示符号已经定义
dummy.h
,其中包含呈现菜单的公共函数的声明
主要问题是ButtonManager有一个全局变量,编译时表示符号已经定义
示例代码:
a、 h(就像是按钮管理器头文件一样):
side.h(假设这是游戏主窗口):
side.cpp:
#include "side.h"
#include "abc.h"
#include <iostream>
int callSomething()
{
std::cout << a.b << "\n";
return a.b;
}
#包括“side.h”
#包括“abc.h”
#包括
int callSomething()
{
std::cout H:\Microsoft Visual Studio 11.0\example\Debug\dynamicdispatch.exe:致命错误LNK1169:找到一个或多个多重定义符号
在
a.h
中将变量声明为
struct A{
int b;
};
extern struct A a;
然后在main.cpp中定义一次:
struct A a;
int main()
{
//...
}
在
a.h
中,将变量声明为
struct A{
int b;
};
extern struct A a;
然后在main.cpp中定义一次:
struct A a;
int main()
{
//...
}
我搜索过,我知道
extern
关键字,但是如何将extern
关键字应用于以这种方式定义的变量?我只知道如果我删除#包括“abc.h”
来自main.cpp
它可以工作,但是我不能在main.cpp
中使用struct A
,我搜索过,我知道extern
关键字,但是如何将extern
关键字应用到以这种方式定义的变量上呢?我只知道如果我删除,包括“abc.h”
frommain.cpp
它可以工作,但是我不能在main.cpp
中使用struct A
,谢谢,这很有效,即使我认为它只能键入一次,但看起来不可能;编辑:您在main
中有一个输入错误hehe@0x499602D2我修好了,上面写着mian谢谢,这是可行的,即使我认为它可能只被输入一次,但看起来这是不可能的;编辑:你在main
hehe@0x499602D2我修好了,上面写着mian
struct A a;
int main()
{
//...
}