首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

求教全局数组的用法,该如何解决

2012-03-26 
求教全局数组的用法本人在做项目时要实现一个功能,从某模块中得到一组数据,程序中将这组数转换为CString型

求教全局数组的用法
本人在做项目时要实现一个功能,从某模块中得到一组数据,程序中将这组数转换为CString型,如 CString StrData='70.00064850, 72.95354462, 75.69261169, 78.08547974, 80.42742920, 82.16522980, 84.81604767, 88.64123535';我的需求为在A.cpp文件中生成这些数,在B.cpp,C.cpp等文件中要使用这些数。有高手指点可使用全局数组来解决这一问题,本人初学C++,对全局数组的用法不了解,百度有差不到相关资料,请各位告知基本用法,最好能提供给我全局数组的定义,初始化和调用的代码。
另外我还有个问题,全局数组是不是就是结构体的用法呢?还需要注意的是我这里应该用的是指针变量
char *buf;
buf = strData.GetBuffer(strData.GetLength());

[解决办法]
在头文件A.h里用extern声明数组:

extern double a[];

在文件A.cpp里定义该数组:

double a[100];

在其它文件里包含A.h就可以使用了:

.
.
.
double x;
.
.
.
x=a[0];
.
.
.

不过这还是面向过程的设计方式,不适合于C++。
[解决办法]
又看了一下,你应该这样写:
在你的A.cpp里面,include以及#ifdef _DEBUG #endif
的下面,写:
char * pData;
在你的某一个函数里面,在得到strData的值的后面,写
char *buf = new char(strData.GetLength()+1);
buf = strData.GetBuffer(strData.GetLength());
strData.releaseBuffer();//这个要有
pData = buf;

然后,在你的B.cpp; C.cpp; D.cpp ....里面,include以及#ifdef _DEBUG #endif
的下面,写:
extern char *pData;

这样,各个cpp文件都能访问strData的值了。
还是记得delete [] pData;

热点排行