导入外部变量,extrend的问题!

hzy694358 2008-04-22 05:45:38
我定义了一个类CGlobal,在Global.h中加入如下代码#include "Users.h" CUsers curUser;
因为我想让curUser成为全局变量,所以在stdAfx.h中加入如下代码#include "Global.h"
但是当我在别的文件中中想引用curUser变量时,加入了如下代码extern CUsers curUser;
并对该变量进行操作(错误与该操作无关)
可是却提示错误:
"class CUsers curUser" (?curUser@@3VCUsers@@A) already defined in HospitalSystemDlg.obj()

请问这是什么原因,我所写的代码是不是有错误或者对方写错了,望高手指导!
(注:这是一个对话框的mfc程序,HospitalSystemDlg是主对话框)
...全文
165 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
gxhankzj 2010-05-29
  • 打赏
  • 举报
回复
我也碰到这个问题只在头文件中定义了CUsers curUser,在CPP中没有就出错误但是例子程序上却没有处错误太诡异了
datoucaicai 2008-04-23
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 hzy694358 的回复:]
因为#include "Users.h"已经包含在Global.h中了,所以在Global.cpp中应该是可以省略的吧[/Quote]

可以省略!
arong1234 2008-04-22
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 hzy694358 的回复:]
非常感谢,问题解决!
在.h文件中添加如下代码:
#include "Users.h"
extern CUsers curUser;
在.cpp文件中添加如下代码:
CUsers curUser;
这样即可
但是一楼说在Global.cpp中还要添加#include "Users.h"
因为#include "Users.h"已经包含在Global.h中了,所以在Global.cpp中应该是可以省略的吧
[/Quote]

CUsers curUser;
这个放再global.cpp或者其他cpp,如果你不放global.cpp,global.cpp可以省略
hzy694358 2008-04-22
  • 打赏
  • 举报
回复
非常感谢,问题解决!
在.h文件中添加如下代码:
#include "Users.h"
extern CUsers curUser;
在.cpp文件中添加如下代码:
CUsers curUser;
这样即可
但是一楼说在Global.cpp中还要添加#include "Users.h"
因为#include "Users.h"已经包含在Global.h中了,所以在Global.cpp中应该是可以省略的吧
arong1234 2008-04-22
  • 打赏
  • 举报
回复
这不是重复包含的问题,即使你加了这个也没有用,这时在多个cpp文件包含同一个头文件导致的问题。
你可以看看

http://blog.vckbase.com/arong/archive/2004/05/28/294.aspx
[Quote=引用 5 楼 lijianli9 的回复:]
主要是头文件重复包含的问题,你可以用#ifndef _MY_H
#deifine _MY_H
....
#endif
来处理。
[/Quote]
lijianli9 2008-04-22
  • 打赏
  • 举报
回复
主要是头文件重复包含的问题,你可以用#ifndef _MY_H
#deifine _MY_H
....
#endif
来处理。
datoucaicai 2008-04-22
  • 打赏
  • 举报
回复
CUsers curUser; 放到Global.cpp文件中,任何一对{}之外

其它如一楼所说

sjdev 2008-04-22
  • 打赏
  • 举报
回复
cpp里面定义.h里面extern.
jhs1982419 2008-04-22
  • 打赏
  • 举报
回复
这类编译错误就是头文件的典型提示,以后编程会经常碰到的 ;
DDGG 2008-04-22
  • 打赏
  • 举报
回复
在Global.h中加入如下代码:
#include "Users.h"

extern CUsers curUser;


在Global.cpp中加入如下代码:
#include "Users.h"
#include "Global.h"

CUsers curUser;


stdAfx.h中加入如下代码
#include "Global.h"


当你在别的文件中中想引用curUser变量时,无需加入如下代码extern CUsers curUser; 直接可以使用 curUser,只要这个文件加入了对stdAfx.h的引用。
Android是一种基于Linux内核(不包含GNU组件)的自由及开放源代码的移动操作系统,主要应用于移动设备,如智能手机和平板电脑。该系统最初由安迪·鲁宾开发,后被Google公司收购并注资,随后与多家硬件制造商、软件开发商及电信营运商共同研发改良。 Android操作系统的特点包括: 开放源代码:Android系统采用开放源代码模式,允许开发者自由访问、修改和定制操作系统,这促进了技术的创新和发展,使得Android系统具有高度的灵活性和可定制性。 多任务处理:Android允许用户同时运行多个应用程序,并且可以轻松地在不同应用程序之间切换,提高了效率和便利性。 丰富的应用生态系统:Android系统拥有庞大的应用程序生态系统,用户可以从Google Play商店或其他第三方应用市场下载和安装各种各样的应用程序,满足各种需求。 可定制性:Android操作系统可以根据用户的个人喜好进行定制,用户可以更改主题、小部件和图标等,以使其界面更符合个人风格和偏好。 多种设备支持:Android操作系统可以运行在多种不同类型的设备上,包括手机、平板电脑、智能电视、汽车导航系统等。 此外,Android系统还有一些常见的问题,如应用崩溃、电池耗电过快、Wi-Fi连接问题、存储空间不足、更新问题等。针对这些问题,用户可以尝试一些基本的解决方法,如清除应用缓存和数据、降低屏幕亮度、关闭没有使用的连接和传感器、限制后台运行的应用、删除不需要的文件和应用等。 随着Android系统的不断发展,其功能和性能也在不断提升。例如,最新的Android版本引入了更多的安全性和隐私保护功能,以及更流畅的用户界面和更强大的性能。此外,Android系统也在不断探索新的应用场景,如智能家居、虚拟现实、人工智能等领域。 总之,Android系统是一种功能强大、灵活可定制、拥有丰富应用生态系统的移动操作系统,在全球范围内拥有广泛的用户基础。

16,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧