C++下的全局变量的定义和使用出错,请教!

zzol 2005-03-23 04:14:43
我想定义一个全局变量,是在一个类的头文件中定义的:
double test1=50;
double test2=20;
class CInput : public CDialog
{
………………
}
通过这个类对这两个变量进行更新数值,

在另外类中使用test1;test2的数值
extern double test1;
extern double test2;
但是如果有多个类使用test1和test2就会出错:
MainFrm.obj : error LNK2005: "double test2" (?test2@@3NA) already defined in Input.obj
MainFrm.obj : error LNK2005: "double test1" (?test1@@3NA) already defined in Input.obj
Output1.obj : error LNK2005: "double test2" (?test2@@3NA) already defined in Input.obj
Output1.obj : error LNK2005: "double test1" (?test1@@3NA) already defined in Input.obj

这样做的问题出在哪里?
...全文
301 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
hushuangyan74 2005-03-23
  • 打赏
  • 举报
回复
有一种比较简单的方法,
在stdAfx.h可以定义全局变量:
static double test1=50;
static double test2=20;
然后在要用的类里面就可以使用test1,及test2.
如在视图类的OnDraw()中
CString str;
str.Format("%f,%f",test1,test2);
AfxMessageBox(str);
0011411 2005-03-23
  • 打赏
  • 举报
回复
怎么可以在头文件中定义全局变量啊!?》?!!!
oyljerry 2005-03-23
  • 打赏
  • 举报
回复
在Input.cpp中定义了double test1=50;double test2=20;

在要使用test1;test2的类的头文件中声明 //改成test1,test2的cpp文件中申明
extern double test1;
extern double test2;
zzol 2005-03-23
  • 打赏
  • 举报
回复
在Input.cpp中有如下错误:
sscanf(m_putin,"%lf",&test1);
sscanf(m_putin2,"%lf",&test2);

error C2065: 'test1' : undeclared identifier
error C2065: 'test2' : undeclared identifier
cnwolf 2005-03-23
  • 打赏
  • 举报
回复
在implement file 定义

在head file 中声明
zzol 2005-03-23
  • 打赏
  • 举报
回复
在Input.cpp中定义了double test1=50;double test2=20;

在要使用test1;test2的类的头文件中声明
extern double test1;
extern double test2;

还是不行
4inSky 2005-03-23
  • 打赏
  • 举报
回复
对,全局变量不要在头文件中定义,要在cpp文件中定义。

你可以看一下app。cpp文件,一般全局变量的theApp都是在cpp中定义的。
subtop 2005-03-23
  • 打赏
  • 举报
回复
放在cpp文件中定义,然后在头文件中 extern double test1;

16,473

社区成员

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

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

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