关于全局变量问题????

tt007 2004-04-07 09:16:52
有unit1.cpp和unit2.cpp,如果我在unit1中定义了一个全局变量u,在unit2中我已经加了unit1.h文件,为什么这个u不能用,说没定义过,请问怎样才能让变量在两个cpp之间通用???????
...全文
46 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lovebcb 2004-04-07
  • 打赏
  • 举报
回复
说的对,我把这个也粘出来吧!
、、、、、、、、、、、、、、、
数据流通有两种方法。

1、定义全局变量
//Unit1.cpp
int num;//定义全局变量

BitBtn1Click(TObject *Sender)
{
num=Edit1->Text.ToInt();
Form2->Show();
}

//Unit2.cpp
extern int num;//定义外来变量,与Unit1.cpp中的定义呼应

BitBtn1Click(...)
{
Label1->Caption=IntToStr(num*3);
}

2、将该变量定义成对象的属性或方法,再通过对象来存取,因此必须将该参数定

义在相应头文件中。
//Unit3.h
private与public之下, 写 int num;
如果想在Form2中读num值,则写在public之下,否则在private之下。

//Unit3.cpp

BitBtn2Click(...)
{
//num已成为Form1中的属性,可以直接使用
Form1->num=Edit1->Text.ToInt();
Form2->Show();
}

//Unit4.cpp
BitBun1Click(...)
{
//因已将Unit3.h引用进来,可直接使用Form1->num
Label1->Caption=(IntToStr(Form1_>num*3));
}
空中猎手 2004-04-07
  • 打赏
  • 举报
回复
楼上说得没错,extern int x
weill 2004-04-07
  • 打赏
  • 举报
回复
偶也是菜鸟耶,如有不当,请大家指正。
weill 2004-04-07
  • 打赏
  • 举报
回复
多窗体的全局量的使用方法一般是这样的:

“主窗体.h”中:

extern int MyInt;

“主窗体.cpp”中:

int MyInt;

“从窗体.cpp”中:

#include "主窗体.h"

做完上面的,你的全局变量就可以在从窗体中用了。
weill 2004-04-07
  • 打赏
  • 举报
回复
在unit1.h中加入这样一句就可以了:

extern int u; //注意,在这儿我假设u是一个整数。
DanielMC 2004-04-07
  • 打赏
  • 举报
回复
错了,应该是通过clss::method:u
DanielMC 2004-04-07
  • 打赏
  • 举报
回复
搞清楚u是属于哪个类,那个方法的变量,通过clss::method::u来调用就行了!

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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